Java基础
多态
参考:
https://blog.csdn.net/qq895627041/article/details/82109576
https://blog.csdn.net/woshiermingerming/article/details/52324861
https://blog.csdn.net/qq_36305530/article/details/81584785
https://blog.csdn.net/ACofKing/article/details/89210924
- 成员变量
编译看左边(父类),运行看左边(父类) - 成员方法
编译看左边(父类),运行看右边(子类)。动态绑定 - 静态方法
编译看左边(父类),运行看左边(父类)。
(静态和类相关,算不上重写,所以,访问还是左边的)
只有非静态的成员方法,编译看左边,运行看右边
class Person{
public String name="person";
public static int age=45;
public void eat(){
System.out.println("person eat");
}
public static void work(){
System.out.println("person work");
}
}
class Worker extends Person{
public String name="worker";
public static int age=25;
public Worker(String name){
this.name=name;
}
public void eat(){
System.out.println("worker eat");
}
public static void work(){
System.out.println("worker work");
}
public void noHoliday(){
System.out.println("no holiday");
}
}
public class Test{
public static void main(String[] args){
Person person=new Worker(“haha”);
System.out.println(person.name);
System.out.println(person.age);
person.eat();
person.work();
//person.noHoliday();
//编译看左边,父类没有此方法,编译时会提示:
//找不到符号
}
}
结果为:
person
45
worker eat
person work