Java多态
父类Animal
public class Animal {
//父类的eat()方法,一定要是public类型的不然不能被子类继承
public void eat(){
System.out.println("eat");
}
子类Cat
public class Cat extends Animal {
//重写父类的eat()方法
@Override
public void eat() {
System.out.println("Cateat");
}
}
子类Dog
public class Dog extends Animal{
//重写父类的eat()方法
@Override
public void eat() {
System.out.println("Dogeat");
}
}
启动类Application
public class Application {
public static void main(String[] args) {
//父类的引用指向子类的实例对象
//方法的调用看左边,创建的实例对象看右边
Animal animal = new Cat();//本质上还是子类Cat对象
animal.eat();//输出Cateat 子类Cat重写了父类的eat()方法
Animal animal1 = new Dog();
animal1.eat();//输出Dogeat 子类Dog重写了父类的eat()方法
}
}
重写:
1.方法名,参数列表必须相同
2.修饰符范围可以扩大不能缩小:public>protected>Default>private
3.抛出异常的范围只能缩小不能扩大
4.不能改写的方法:static方法,final方法,private方法
多态:
1.多态是方法的多态
2.多态存在的条件:继承关系,方法需要重写,父类引用指向子类对象
3.为什么要多态:个人观点,当一个父类有许多个子类且所有子类都需要用到父类的某一个方法时
为了代码的简洁性,不需要给每一个子类都写一个对应的方法,而是通过改写父类的方法,这样子
类对象再调用父类的方法时,直接调用了自己改写过的父类的方法。