Java 中关于多态的笔记

多态的三个条件:

  • 存在继承关系
  • 存在重写
  • 父类引用指向子类对象

父类

public class Animal {
    
    int num = 10;
    // 静态属性
    static int age = 20;
    
    public void eat() {
        System.out.println("动物吃饭");
    }
    
    // 静态发方法
    public static void sleep() {
        System.out.println("动物在睡觉");
    }
    
    public void run(){
        System.out.println("动物在奔跑");
    }
}

子类

public class Cat extends Animal {
    
    // 添加自己的属性
    int num = 80;
    String name = "tomCat";
    
    // 静态属性
    static int age = 90;
    
    // 重写 父类 的 eat() 方法
    public void eat() {
        System.out.println("猫吃饭");
    }
    
    // 重写 父类 的 sleep() 方法
    public static void sleep() {
        System.out.println("猫在睡觉");
    }
    
    // 增加自己 的 CatchMouse() 方法
    public void catchMouse() {
        System.out.println("猫在抓老鼠");
    }
}

测试类

public class Demo_Test1 {
    public static void main(String[] args) {
        Animal am = new Cat();  // 父类引用指向子类对象
        am.eat();  // 调用的是子类的重写方法
        am.sleep();  // 父类的静态方法 不能被子类重写
        am.run();  // 正常调用父类方法
        
//      am.catchMouse();
//      System.out.println(am.name);
        
        System.out.println(am.num);
        System.out.println(am.age);
    }
}

结果:


Java 中关于多态的笔记_第1张图片
结果图.png

你可能感兴趣的:(Java 中关于多态的笔记)