多态
概念:
一种事物多种形态
多态的前提:
1.有继承关系
2.有方法重写
3.父类引用指向子类对象
多态的成员特点:
编译看左边,运行看右边
成员变量特点:
编译看左边,运行看左边
静态方法:
静态方法必须重写为静态
类型转换(大到小强制转换)
数据类型 变量名 =(目标数据类型) 数据
引用数据类型
父类数据类型 变量名=(子类数据类型) 父类引用
父类转向子类:强制转换向下
子类转向父类:多态转换对象
Animal al=new cat ;
多态的好处与弊端
好处:提高了代码可维护性
弊端:不能直接访问子类的方法,用强制转换向下
IronMan i=(IronMan) p;
抽象类
概念:
描述现实世界的抽象概念
格式:
abstract class 类名{};
抽象方法:
abstract 返回值类型 方法名(){};
特点:
1.可以有非抽象方法
2.抽象方法不能在非抽象类中,也就是说有抽象方法的类一定是抽象类。
3.继承了抽象类一定要重写父类中的抽象方法
4.抽象类无法实例化,不能创建对象
5.可以用多态,定义子类为非抽象类
6.一般父类为抽象类,继承让子类实例化,实现功能。