多态性在java中的体现:
1.方法重写和重载
2.对象的多态性–可以直接应用在抽象类和接口上
java引用变量有两种类型,编译时类型和运行时类型,编译时类型由声明该变量时使用的类型决定,运行时类型由实际复制给该变量的对象决定
两者不一致就会出现多态
判断是否为多态存在“is-a”规则,他表明子类的每个对象也是父类的对象
例如
Employee e=new Employee();
Employee e=new Manager();
Manage类设置为Employee类的子类,因为每个经理都是雇员,反之不是每个雇员都是经理,这就是"is-a”原则。
Employee类既可以引用一个Employee类对象,也可以引用Employee类任何一个子类的对象。
而实现多态需要做两件事
1.子类对象可以直接复制给父类变量,但运行时依然表现出子类的特征,这会导致同一个类型的对象可能有不同的行为特征,比如上述的Employee和Manager
2.方法重写,子类继承父类并重写父类中已有的抽象方法