JAVA基础 -从父类的引用如何调用子类中独有的方法

    xiaoxiao2026-01-03  10

    首先放上源文件

    父类  Animal.java

    package com.imooc; public class Animal {     public void eat(){            //注意这个eat方法      System.out.println("动物具有吃的能力");     } } 子类  Dog.java package com.imooc; public class Dog extends Animal {     public void eat(){           //重写父类的eat方法      System.out.println("狗是吃肉的");     }     public void watchDoor(){    //子类中独有的方法,思考如何调用它呢?      System.out.println("狗具有看门的能力");     } } 子类  Cat.java   // 直接继承父类文件,没有任何修改代码的操作 package com.imooc; public class Cat extends Animal { } 主函数  Initial.java public class Initial {  public static void main(String[] args) {   // TODO Auto-generated method stub         Animal animal1 = new Animal();//animal1  /2/3都是引用,引用指向的是本类或者子类对象         Animal animal2 = new Dog();//父类的引用是可以指向子类的对象的         Animal animal3 = new Cat();         animal1.eat();      //animal1是创建的父类本身的对象,所以其执行的是父类下的eat方法         animal2.eat();      //animal2是创建的子类的对象,所以其执行的是Dog类下重写的eat方法         animal3.eat();      //animal3是创建的子类的对象,所以其执行的是Cat类下的继承于Animal的eat方法         //animal2.watchDoor();    这个代码是错误的,父类的引用不能直接调用子类的方法          Dog dog = (Dog)animal2;  //将父类引用强制转换成子类,功能变强大了         dog.watchDoor();   // 可以执行子类独有的方法 } } 运行结果: 动物具有吃的能力 狗是吃肉的 动物具有吃的能力 狗具有看门的能力

    转载请注明原文地址: https://ju.6miu.com/read-1305610.html
    最新回复(0)