【发布时间】:2015-03-02 21:06:17
【问题描述】:
我有两个程序,一个使用接口实现,另一个仅使用类实现 -
我读过使用接口的优点是它可以提供它自己的超类方法的实现,但可以使用抽象类或方法覆盖来完成。接口的用途是什么?
在什么样的层次结构和情况下使用接口最有利?
界面
interface Shape
{
void area(int x, int y);
}
class Rectangle implements Shape
{
@Override
public void area(int length, int breadth)
{
System.out.println(length*breadth);
}
}
class Triangle implements Shape
{
@Override
public void area(int base, int height)
{
System.out.println(base*height);
}
}
public class ShapeUsingInterface
{
public static void main(String X[])
{
Rectangle r = new Rectangle();
Triangle t = new Triangle();
r.area(5, 4);
t.area(6, 3);
}
}
类
class Shape
{
void Area(int x, int y)
{
System.out.println(x*y);
}
}
class Rectangle extends Shape
{
}
class Triangle extends Shape
{
@Override
void Area(int base, int height)
{
System.out.println((0.5)*base*height);
}
}
public class CalculateArea
{
public static void main(String X[])
{
Rectangle r = new Rectangle();
Triangle t = new Triangle();
r.Area(4, 5);
t.Area(6, 8);
}
}
【问题讨论】:
-
你可以实现多个接口,但只能扩展一个类
-
嗯,重要的区别在于,接口定义了一个牢不可破的合约。因此,它使实现它的类显式实现该方法。另一方面,一个类并不明确期望您实现这些方法。
标签: java inheritance interface abstract-class overriding