我已经尽力找到了这个问题的最佳答案,但徒劳。
因此,在采访中有人问我这个问题,我回答“是”。由于抽象只不过是向用户隐藏了实现细节,因此用户不必担心实现,而只知道方法签名(需要传递的对象的类型和返回类型)。根据传递的对象类型,开发人员可以决定实现并返回相应的结果。因此,根据我的说法,这也可以使用如下的具体普通类来完成。
public class LearnAbstraction {
public static void main(String[] args) {
Animal animal = new Tiger();
SpeakingAnimal sa = new SpeakingAnimal();
sa.getAnimalToSpeak(animal);
}
}
class SpeakingAnimal {
public void getAnimalToSpeak(Animal animal){
animal.speak();
}
}
class Animal{
public void speak(){
System.out.println("I am an Animal");
}
}
class Tiger extends Animal {
public void speak() {
System.out.println("I am an Animal and Tiger");
}
}
class Horse extends Animal {
public void speak() {
System.out.println("I am an Animal and Horse");
}
}
我知道这不是实现抽象的正确方法,必须使用接口或抽象类来完成。但是,问题是,是否可以使用具体的类来实现抽象(让我们将适当的方法放在一边)。因此,回答“是”是否正确?
qq_遁去的一_1
相关分类