1:什么是多态?
多态:同一个引用类型,使用不同的实例而执行不同操作(父类引用指向子类对象)
2:实现多态的三个要素:
继承关系,子类重写父类方法,父类的引用指向子类的对象
3:实现多态的俩种形式
(1) 使用父类作为方法形参实现多态
(eg:使用多态优化主人给宠物喂食
public class Master{ Pet pet=new Dog();
public void feed(Pet pet){ Master master=new master();
pet.eat(); 使用父类作为 master.feed(pet);
} } 方法形参 ........ 同一种操作方式, ) 不同的操作对象
在使用该形式时要注意主人类和测试类的变化,在参数位置进行添加父类。
(2) 使用父类作为方法返回值实现多态
eg:public class Master{
public Pet getPet(String typeld){
...............}
}
实现思路:在Master类中进行一个方法的添加该方法就是父类后面的方法
然后在测试类中,根据编号来进行实现
在使用该形式时要注意父类在其返回值那块,并且没有返回值类型,在父类后
紧跟着一个方法,在方法中会有一个定义的数据类型 以及其定义的对象,方法里则
为自己需要进行的详细代码步骤
4:父类到子类的转换
从父类直接变成子类(不允许)
向下转型(强制类型转换)Son s=(son) f
子类继承父类所有财产中,子类可编程父类
向上转型(自动转换类型)F f =new Son();
5:instanceof运算符
对象 instanceof 类或接口
instanceof通常和强制类型转换结合使用
6:父转子为不安全,子转父为安全
7:object 类对象可以强制转换任何类型而不发生编译错误
任何非object类型的数据都需要强制类型转换才能转换成object类型的数据
以上说法均为错误的
8:object 整个大类
父类引用指向子类对象,这时父类不能调用子类独有的属性和方法,必须进行向下转型
(强制转换)
子类重写父类的方法不是独有的,可以用父类调用子类的重写方法
9:一个抽象父类让一个抽象的子类继承:
建下一个类可以是 public abstract class / public class
方法体可不重写 必须重写方法
10:多态的优点:
减少类中的代码量,
提高代码的可扩展性和可维护性
开发效率高
11:多态:
子类转化为父类后,main方法中调用普通方法时依旧是子类的方法
类型转换带来的作用就是多态
子类继承父类的所有方法但子类可以重新定义一个名字(重写)
子类方法优先级高与父类