image.png

    1. package com.itheima.d8_extends_field_method;
    2. public class Test {
    3. public static void main(String[] args) {
    4. // 目标:理解继承后成员的访问特点,就近原则
    5. Dog d = new Dog(); // 给子类创建对象
    6. d.run(); // 虽然父类也有run方法,但是他会优先执行自己子类的方法
    7. d.lookDoor();// 子类的
    8. d.showName();
    9. }
    10. }
    11. class Animal {
    12. public String name = "动物名";
    13. public void run(){
    14. System.out.println("动物可以跑");
    15. }
    16. }
    17. class Dog extends Animal {
    18. public String name = "狗名";
    19. public void lookDoor(){
    20. System.out.println("狗可以看门");
    21. }
    22. public void showName(){
    23. String name = "局部名";
    24. System.out.println(name); // 会采用就近原则,访问当前方法的name,如果局部没有就访问当前子类的name,
    25. // 当前子类没有则访问父类的name(会继承父类成员,和方法)
    26. System.out.println(this.name); // 加上关键字this访问子类的name(当前对象)
    27. System.out.println(super.name); // 加上关键字super访问父类的name
    28. // 访问方法
    29. run(); // 这里是访问当前子类的方法
    30. super.run(); // 访问父类的方法
    31. }
    32. public void run(){
    33. System.out.println("狗跑的很快");
    34. }
    35. }