多态
class Father {
int x = 1;
static int y = 2;
void eat() {
System.out.println("开吃");
}
static void speak() {
System.out.println("小头爸爸");
}
}
class Son extends Father {
int x = 3;
static int y = 4;
void eat() {
System.out.println("大头儿子很能吃");
}
static void speak() {
System.out.println("大头儿子。");
}
}
class Demo10 {
public static void main(String[] args) {
Father f = new Son(); // 父类引用指向了子类对象。
System.out.println(f.x); // 1
System.out.println(f.y); // 2
f.eat(); // 输出的是子类的。
f.speak(); // 输出的是父类
}
}
什么是多态
一个对象的多种状态
(老师)(员工)(儿子)
教师 a =老钟;
员工 b= 老钟;
总结
1:当父类和子类具有相同的非静态成员变量,那么在多态下访问的是父类的成员变量
2:当父类和子类具有相同的静态成员变量,那么在多态下访问的是父类的静态成员变量
所以:父类和子类有相同的成员变量,多态下访问的是父类的成员变量。
3:当父类和子类具有相同的非静态方法(就是子类重写父类方法),多态下访问的是子类的成员方法。
4:当父类和子类具有相同的静态方法(就是子类重写父类静态方法),多态下访问的是父类的静态方法。
多态前提
1:类与类之间有关系,继承或者实现
多态体现
1:父类引用变量指向了子类的对象
2:父类引用也可以接受自己的子类对象
谢谢

浙公网安备 33010602011771号