
package com.itheima.d8_extends_field_method;
public class Test {
public static void main(String[] args) {
// 目标:理解继承后成员的访问特点,就近原则
Dog d = new Dog(); // 给子类创建对象
d.run(); // 虽然父类也有run方法,但是他会优先执行自己子类的方法
d.lookDoor();// 子类的
d.showName();
}
}
class Animal {
public String name = "动物名";
public void run(){
System.out.println("动物可以跑");
}
}
class Dog extends Animal {
public String name = "狗名";
public void lookDoor(){
System.out.println("狗可以看门");
}
public void showName(){
String name = "局部名";
System.out.println(name); // 会采用就近原则,访问当前方法的name,如果局部没有就访问当前子类的name,
// 当前子类没有则访问父类的name(会继承父类成员,和方法)
System.out.println(this.name); // 加上关键字this访问子类的name(当前对象)
System.out.println(super.name); // 加上关键字super访问父类的name
// 访问方法
run(); // 这里是访问当前子类的方法
super.run(); // 访问父类的方法
}
public void run(){
System.out.println("狗跑的很快");
}
}