java第三章多态

多态:

多态不仅可以减少代码量,还可以提高代码的扩展和可维护性

(通过一个方法可以对所有所需方法一个运用)多态具体表现多种形态能力的特征,同一个实现接口使用不同实例而执行不同的操作

实现多态的三个条件:

1.继承的存在(继承是多态的基础,没有继承就没有多态)

2.子类重写父类方法(多态下调用子类重写后的方法)

3.父类引用量指向子类对象(子类到父类的类型转换)向上转型

父类到子类的类型转换称为向下类型转换(强制类型转换)

向下类型转换

父类到子类的类型转换

当向上转型发生后,将无法调用子类特有的方法,当需要调用子类特有的方法时可以通过将父类再转换子类来实现(强制类型转换)  例:Hero hero = (Hero) person;(前面可以先判断person instanceof Hero)向下转型调用子类的特有方法:((Hero) person).方法名

向上类型转换 例:Person person = new Hero("","");

子类到父类的转换

特点:将一个父类的引用指向一个子类对象,成为向上转型(自动类型转换)

通过父类引用量调用的方法是子类覆盖或继承父类的方法,不是父类的方法(就是子类的方法,但是不包括子类特有的方法)

通过父类引用量无法调用子类特有的方法

instanceof

判断一个对象是否属于一个类或实现了接口,结果为布尔值,在强制类型转换之前通过instanceof运算符检查对象真实类型,在进行类型转换可避免类型转换异常

实现多态的2种方法:

使用父类作为方法形参(方法形参)实现多态(主要方法之一)  public void feed(Person person){在新的类中添加}

使用父类作为方法返回值实现多态(在新的类中添加) public Person getPerson(int TypeId)

猜你喜欢

转载自www.cnblogs.com/yh0409/p/9948818.html