为什么我们使用Interface?
当我们实现一个接口时,我们必须为该接口的方法编写定义。 那么,实现接口需要什么呢?我们可以直接在类中编写方法。
谢谢:)
答案 0 :(得分:1)
示例可能对您有用,请参阅下面的方案。
1.class A extends B{
..
..
..
}
当A扩展B并且你正在创建一个新的C类时,你不能使用A来扩展C,所以go for Interface.
2.class A implements B {
..
..
}
如果在B中添加一个新方法并且它(B)由100个类实现,则很难在所有类中实现新方法,因此去抽象类并添加新方法骨架实施。
获得进一步的帮助,请阅读Joshua Bloch撰写的Effective Java。
答案 1 :(得分:0)
你有一个方法被N个类使用。如果定义不同,每个类使用接口。
假设一个方法类似于50个类,另外50个类具有不同的行为意味着使用Abstract类。您可以定义方法。
用于前50个班级,剩下的50个班级有不同的行为,因此根据班级行为覆盖现有方法 实施例
Interface Graphics
{
void size();
void draw();
}
Class Rectangle implements Graphics
{
void size()
{
x=10;
y=10;
}
void draw()
{
.....
}
}
class Triangle implements Graphics
{
void size()
{
x=10;
y=10;
}
void draw()
{
.....
}
}
因此两个类的大小都相同,然后使用abstract
abstract class Graphics
{
void size()
{
x=10;
y=10;
}
abstract void draw();
}
然后,如果任何类扩展此类的大小相似,只定义draw()
如果某些类需要不同的位置,则覆盖大小。
答案 2 :(得分:0)
这更像是面试问题 -
关于何时使用长期存在的问题的决定,是与很多人有意见或支持这个或那个想法的讨论之一。我认为几乎每次都有一个基本规则:如果你可以使用“A是a B”这个语句,可以使用抽象的clases和继承。如果你可以创建语句“A能够[做]如何”,或者抽象一个类是什么,接口是什么类可以做。
使用接口。例如,我们可以说三角形是一个多边形,但说三角形能够成为多边形是没有意义的。
无论如何,一如既往,对此的经验法则是:运用你的常识。有时界面恰好更合适,即使上面的规则告诉你相反,如果它只是使用界面(当然考虑后果)。