1、什么是多态:同一个对象,在不同时刻表现出来的不同形态。
举例:狗
可以说狗是狗: 狗 Dog = new 狗();
也可以说狗是动物:动物 Animal = new 狗();
这里狗在不同时刻表现出来不同的形态,这就是多态。
2、多态的前提和体现:
a、有继承/实现关系;
b、有方法重写;
c、有父类的引用,指向子类的对象;
3、多态中成员变量和成员方法访问特点:
a、成员变量:编译看左边(父类),运行看左边(父类)
b、成员方法:编译看左边(父类),运行看右边(子类)
为什么成员方法和成员变量访问特点不一样:因为成员方法有重写覆盖的概念,而成员变量没有重写。
public class DuoTaiTest { public static void main(String[] args) { Animal animal = new Dog();
animal.eat(); //调用子类中的eat方法
System.out.println(animal.num); //输出10; } } // 动物类 class Animal {
int num = 10; public void eat() { System.out.println("动物吃饭"); } } // 狗类 class Dog extends Animal {
int num = 20; @Override public void eat() { System.out.println("狗吃骨头"); } }
标签:成员,多态,eat,Animal,父类,public From: https://www.cnblogs.com/weiduaini/p/17175776.html