我已经从某处读了一些行,但我不明白这一行的含义清楚..我不知道为什么我不明白。我知道这两者之间的区别非常好..但是plz帮助我..并解释它是什么意思...?界面/抽象类
在设计中,您希望基类只提供其 派生类的接口。这意味着,你不要 希望任何人实际实例化基类的 对象。你只有 想上传到它(隐含 向上,这会给你多态 行为),所以它的接口可以使用 。这是通过 使用抽象关键字 使该类抽象来完成的。如果有人试图将 作为抽象类的对象,编译器会阻止它。
在此先感谢....
我已经从某处读了一些行,但我不明白这一行的含义清楚..我不知道为什么我不明白。我知道这两者之间的区别非常好..但是plz帮助我..并解释它是什么意思...?界面/抽象类
在设计中,您希望基类只提供其 派生类的接口。这意味着,你不要 希望任何人实际实例化基类的 对象。你只有 想上传到它(隐含 向上,这会给你多态 行为),所以它的接口可以使用 。这是通过 使用抽象关键字 使该类抽象来完成的。如果有人试图将 作为抽象类的对象,编译器会阻止它。
在此先感谢....
public abstract class Animal {
public abstract String speak();
}
public class Dog extends Animal {
public String speak() { return "woof!"; }
}
public class Duck extends Animal {
public String speak() { return "quack!"; }
}
Animal a = Zoo.getRandomAnimal();
a.speak();
你想让人们把动物称为动物,而不是特指狗或鸭。这样,如果您养殖了一只狗/鸭混合动物,并因此创建了一种新的动物类型,那么它们就不必围绕改变代码来处理这个新的奇迹。
他们在引用中谈到的接口并不是谈论Java的“接口”,而是“可用于与此对象交互的一组方法”。
所有动物都说话,这就是重要的。这是界面。他们讲话的具体方式是实施细节。
接口,同时具有具体方法和抽象方法的抽象类,它没有具体的方法纯粹抽象类也
这意味着,如果你定义类A作为抽象类型,您不能创建类型A的实例。您只能创建A的子类(从A扩展/继承的类)的实例。
这句话的来源在哪里? – aponomarenko 2011-01-20 11:16:36
究竟是什么不清楚? – 2011-01-20 11:19:25