如何调用抽象类方法

nsd*_*nsd 3 java inheritance class core abstract

我有一个名为Hospital.java的界面

public interface Hospital {
    public void operate();
    public void doScan();
    public void doVaccination();
}
Run Code Online (Sandbox Code Playgroud)

我有一个名为StreetHospital.java的抽象类

public abstract class StreetHospital implements Hospital{
    public void operate(){
        System.out.println("Street Hospital operate");
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我正在使用另一个类CommunityHospital.java来扩展StreetHospital.java

public class CommunityHospital extends StreetHospital{

    public void doScan(){
        System.out.println("CommunityHospital doScan");
    }
    public void doVaccination(){
        System.out.println("CommunityHospital doVaccination");
}
    public void operate(){
        System.out.println("CommunityHospital operate");
    }
}
Run Code Online (Sandbox Code Playgroud)

我在MainHospital类中创建了CommunityHospital对象

public class MainHospital {

    public static void main(String[] args){
        CommunityHospital ch = new CommunityHospital();
        ch.operate();
        ch.doScan();
        ch.doVaccination();

    }
}
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

CommunityHospital operate
CommunityHospital doScan
CommunityHospital doVaccination
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在输出中打印"街道医院操作"sysout语句?

Sol*_*olo 5

你不能这样做.

在一个具有相同名称和参数的类中不能有两个方法.一旦你在CommunityHospital中覆盖了operations(),StreetHospital中的同一个方法就不再存在了.