动态多态是什么?多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的bai实现方式即为多态。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后。
中有向上转型和向下转型
1.向上转型:父类引用指向子类对象
语法格式: 父类 对象名 = new 子类(参数列表);
这个是子类和父类↑↑
这个是输出列表
上面需要主要的是:na.p();这个是可以正常的输出的;
但是na.pr();这个是值的子类中的,父类中没有所有会报错
向上转型的主要输出的是父类的方法;
2.向下转型:父类对象转换为子类对象
语法格式:子类 对象名 = (子类名)父类;
向下转型的语法格式和强自转换很像。
向下转型需要配合向上转型来使用;
这个是子类和父类↑↑
↑↑这个是输出
在用了向下转型之后,把父类强制转换成子类。
这样子类也可以使用本身和父类的方法。
向上转型是安全的 向下转型却不一定是安全的。 向下转型成为强制类型转换 其意思是从父类转为子类 转了后你可以拥有更多的方法 因为子类通常有比父类更多的方法。 向上转型称为抽象,抽象的内容将在下一个内容讲。