本篇文章解决问题
1. 多态性
1. 多态性
1.1 多态性的理解
可以理解为一个事物的多种形态。
1.2 何为多态性
父类的引用指向子类的对象(或子类对象赋给父类的引用)。
Person p = new Man()
Object obj = new Data()
1.3 多态性的使用
有了对象的多态性后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。
总之:编译看左边,运行看右边。
1.4 多态性的使用前提
- 类的继承
- 方法的重写
1.5 多态性的应用举例
public class AnimalTest {
public static void main(String[] args) {
AnimalTest test = new AnimalTest();
test.func(new Dog());
test.func(new Cat());
}
public void func(Animal animal){
animal.eat();
animal.shout();
}
}
class Animal{
public void eat(){
System.out.println("动物:进食");
}
public void shout(){
System.out.println("动物:叫");
}
}
class Dog extends Animal{
public void eat(){
System.out.println("狗:吃肉");
}
public void shout(){
System.out.println("狗:汪!汪!汪!");
}
}
class Cat extends Animal{
public void eat(){
System.out.println("猫:吃鱼");
}
public void shout(){
System.out.println("猫:喵!喵!喵!");
}
}
狗:吃肉
狗:汪!汪!汪!
猫:吃鱼
猫:喵!喵!喵!
1.6 多态性使用注意点
对象的多态性,只适用于方法,不适用于属性。