多态的概述和及其代码体现
多态的概述:事物的多种形态。
多态的前提:
- 要有继承关系。
- 要有方法重写。
- 要有父类引用指向子类对象。
多态优点
- 消除类型之间的耦合关系
- 可替换性
- 可扩充性
- 接口性
- 灵活性
- 简化性
代码实现:
public class demo_Animal {
public static void main(String[] args) {
Cat cat1 = new Cat();
Animal cat2 = new Cat(); //父类引用指向子类对象
cat1.eat();
cat2.eat();
}
}
class Animal{
public void eat(){
System.out.println("动物吃肉");
}
}
class Cat extends Animal{
public void eat(){
System.out.println("猫吃鱼");
}
}
运行结果:
猫吃鱼
猫吃鱼
多态中的成员访问特点之成员变量
代码实现:
public class demo_Father {
public static void main(String[] args) {
Father f = new son ();
System.out.println(f.num);
son s = new son();
System.out.println(s.num);
}
}
class Father{
int num = 10 ;
}
class son extends Father {
int num = 20 ;
}
运行结果:
10
20
总结:编译看左边(父类),运行看左边(父类)。
多态中的成员访问特点之成员方法
代码实现:
public class demo_Father {
public static void main(String[] args) {
Father f = new son ();
son s = new son();
f.print();
s.print();
}
}
class Father{
public void print(){
System.out.println("Father");
}
}
class son extends Father {
public void print(){
System.out.println("Son");
}
}
Son
Son
总结:编译看左边(父类),运行看右边(子类)。也叫动态绑定。
转型
- 向上转型
Father f = new son ();
- 向下转型
Son s = (Son) f ;