Java学习day11
回顾
今日目标
实现方法重写
了解Object类
会使用重写实现多态机制
会使用instanceof运算符
会使用向上转型
会使用向下转型
1.回顾方法重写
1.父类的静态方法和实例方法都可以继承
2.父类的静态方法和实例方法都可以重写(覆盖)吗?
静态方法可以被继承 不能被覆盖
public class Fu { public void a(){ System.out.println("父类实例a"); } public static void b(){ System.out.println("父类静态b"); } } 1234567891011
public class Zi extends Fu{ public void a(){ System.out.println("子类实例a"); } public static void b(){ System.out.println("子类静态b"); } } 1234567891011
public class Test { public static void main(String[] args) { Fu fu=new Fu(); fu.a(); fu.b(); System.out.println("---------------------"); Zi zi = new Zi(); zi.a(); zi.b(); System.out.println("--------------"); //Fu f1 = new Zi(); Fu f1 = new Zi(); f1.a(); f1.b(); } }
1234567891011121314151617181920212.重写object类的equals方法
1.Object类的equals()方法:
比较两个对象是否是同一个对象,是则返回true
Object类是所有类的父类,它的equals方法自然会被所有类继承,有一个子 类String对equals方法进行了覆盖(重写),使其具有了新功能
2.操作符==
简单数据类型或常量值,直接比较值。如12,“你好”“你好”
引用类型,比较是否为同一个对象。
(1)Object类的equals()方法与没区别
(2)Java.lang.String重写了equals()方法,把equals()方法的判断变为了判断其值
(3)当有特殊需求,如认为属性相同即为同一对象时,需要重写equals()
案例:
1.分析String类时如何重写equals方法的。
2.在Pet类中重写equals方法
总结:
1.基本数据类型数据值只能用
2.对于引用数据类型,和Object的equals方法是一样的。(查看源码)
3.由于String类对父类Object的equals方法的重写,导致与equals唯一的区别在于:
3.instanceof
java中的instanceof运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例
使用格式: 对象 instanceof 类
使用解析:
形参 和实参 和 右边的类型
主要是看实参对象是否属于右边的类型
4.多态
学习完封装以后,我们可以使用两种方式为对象属性赋值,set方法和有参构造。
什么时候使用set,什么时候使用有参构造。
Set可以在创建对象以后,反复的对属性值进行修改。而有参构造是在产生对象的同时就为属性赋值,且同一个对象只能使用一次。
1.什么是多态?
//把子类的实例化对象赋值给父类的引用类型
继承 Fu f=new Zi(); Pet p=new Dog(); Pet p=new Penguin();
重写 f.a();
多种状态 多态=继承+重写
2.案例理解:
1.使用多态实现宠物看病
2.使用多态实现宠物喂食。
3.捐献宠物系统
应用:
1.父类作为方法的形参 (多态最常用的使用方式)
案例:狗狗和企鹅都有看病的方法,如果健康值<50,主人就带它们去看病。
2.父类作为方法的返回值
例:捐献动物
向上转型和向下转型
多态的接地气的理解:父类作为形参,子类类型作为实参。
public class Animal { } 123
public class Elephant extends Animal { } 123
public class CeShi { public static void main(String[] args) { Object a = new Animal(); Animal a1=new Elephant(); Object a2=new Elephant(); /* Animal e1= (Animal) new Object(); Elephant e2= (Elephant) new Animal(); Elephant e3= (Elephant) new Object();*/ Animal e= (Animal) a; Elephant e1= (Elephant) a1; Elephant e3= (Elephant) a2; Animal e4= (Animal) a2; System.out.println(a instanceof Object); System.out.println(a instanceof Animal); System.out.println(a instanceof Elephant);//false System.out.println("--------------"); System.out.println(a1 instanceof Object); System.out.println(a1 instanceof Animal); System.out.println(a1 instanceof Elephant); System.out.println("--------------"); System.out.println(a2 instanceof Object); System.out.println(a2 instanceof Animal); System.out.println(a2 instanceof Elephant); System.out.println("--------------"); System.out.println(e instanceof Object); System.out.println(e instanceof Animal); System.out.println(e instanceof Elephant
12345678910111213141516171819202122232425262728293031相关知识
如何学习Java?一份完整的Java学习路线指南
Java实战项目
java宠物之家
java宠物作业 java实训项目宠物商店
java程序SQl
电子宠物游戏java
java开发桌面宠物
java宠物商店代码
基于java的宠物商城开题 java实训项目宠物商店
Java程序编写宠物类并封装 java写一个宠物系统
网址: Java学习day11 https://www.mcbbbk.com/newsview1107876.html
上一篇: 疯狂小狗 宠物狗狗零食泰迪金毛磨 |
下一篇: 物品列表:宠物(版本3.X) |
推荐分享

- 1我的狗老公李淑敏33——如何 5096
- 2南京宠物粮食薄荷饼宠物食品包 4363
- 3家养水獭多少钱一只正常 3825
- 4豆柴犬为什么不建议养?可爱的 3668
- 5自制狗狗辅食:棉花面纱犬的美 3615
- 6狗交配为什么会锁住?从狗狗生 3601
- 7广州哪里卖宠物猫狗的选择性多 3535
- 8湖南隆飞尔动物药业有限公司宠 3477
- 9黄金蟒的价格 3396
- 10益和 MATCHWELL 狗 3352