【发布时间】:2017-11-23 13:15:01
【问题描述】:
我正在尝试在我的 DogOwner 类中创建一个名为 makeDogsBark() 的方法,该方法应该执行当前 DogOwner 拥有的所有狗的 bark() 方法。
当我尝试调用该方法时,出现以下错误。 DogOwner.java:21:错误:狗是抽象的;无法实例化
这是我的 Dog.java 界面:
public interface Dog {
String getName();
String getBreed();
void bark();
}
这是我的第一堂课 Doggo.java:
public class Doggo implements Dog {
private String name;
public Doggo(String name){
this.name = name;
}
@Override
public String getName() {
return this.name;
}
@Override
public String getBreed() {
return "doggo";
}
@Override
public void bark() {
System.out.println("The doggo " + name + " made a noise: Woof!, it said.");
}
}
这是我的第二课 Pupper.java:
public class Pupper implements Dog {
private String name;
public Pupper(String name){
this.name = name;
}
@Override
public String getName() {
return this.name;
}
@Override
public String getBreed() {
return "pupper";
}
@Override
public void bark() {
System.out.println("The pupper " + name + " made a noise: Bark! Bark! Bark!, it said.");
}
}
这是我的第三类 DogOwner.java:
public class DogOwner {
private String name;
private ArrayList<Dog> dogsOwned;
public DogOwner(String name){
this.name = name;
}
public void adoptDog(Dog newDog){
if(!this.dogsOwned.contains(dogsOwned)){
this.dogsOwned.add(newDog);
}
}
public void makeDogsBark(){
System.out.println("The person " + name + " made all his/hers dogs bark.");
Dog dog = new Dog();
dog.bark();
}
}
【问题讨论】:
-
我可以知道你在哪里调用这些方法吗?请发布您收到的错误
-
“我尝试这样做,但它不工作” - “它不工作”是永远足够的信息。它会编译但抛出异常吗?它不编译吗?它是否编译然后毫无例外地运行,但没有给出预期的结果?什么是预期的结果?请提供minimal reproducible example,明确说明预期与实际行为。
-
嗨乔恩,谢谢编辑我的原始帖子现在出现错误。
-
你不能创建对象到接口,创建实例到类并调用方法
标签: java class methods interface