据我了解,这是什么意思。制定方法来构建程序的不同组件。例如如果我要制作一个添加和减去数字的程序,那么我会有类似的东西;
public void addnum(int addnum){
addnum= addnum+1;
system.out.println(addnum);
}
public void subtractnum int subtractnum){
subtractnum = subtractnum-1;
system.out.println(addnum);
}
public static void main(String args[]){
int num = 21;
addnum(num);
subtractnum(num);
}
我是否正确,或者是否意味着其他事情?
答案 0 :(得分:1)
将不同的方法与不同的参数类型混淆 也许这个例子会有所帮助:
public interface GeometricalObject {
double getArea();
double getPerimeter();
}
...
public class Circle implements GeometricalObject {
public double r;
public double getArea() {
return 3.14 * r * r;
}
public double getPerimeter()
{
return 3.14 * 2 * r;
}
}
...
public class Square implements GeometricalObject {
public double s;
public double getArea() {
return s * s;
}
public double getPerimeter()
{
return 4 * s;
}
}
...
public void printGeomObject(GeometricalObject g) {
System.out.println("Area is " + g.getArea());
System.out.println("Perimeter is " + g.getPerimeter());
}
答案 1 :(得分:1)
接口为我们提供了多级继承的方式。
接口可以扩展到任何类
任何类的公共属性都可以在接口中定义,并且可以继承到许多类。
答案 2 :(得分:1)
在Java和.NET框架中,从Y继承的类X有两个好处:
类X的实例封装了所有Y字段的值,并且可以使用Y的任何受保护成员,就像这些成员属于X一样;另外,X类的定义可能使用Y的静态成员,就像它们自己的一样。
Y类型的变量可以保存对类型X实例的引用。
允许类对象将其他多个类的内容视为自己的内容,这使得无法使upcast和downcast保持身份;由于保持身份保持向上转发和向下转换是有用的,因此Java和.NET允许每个类仅将一个父级的成员视为其自己的父级(父级的父级成员也是父级的成员,并且如此合并)。仅从一个父类中加入成员的限制通常不会过于严格。
另一方面,如果每种类型只能存储在其自身类型或其祖先类型的引用中,那么这将是限制性的。为了允许以多种独立类型存储对象的引用可能是有帮助的,Java和.NET都可以定义接口类型。对实现接口的对象的引用可以存储在该接口类型的变量中(实现继承的第二个好处),但与限于单个父类的类继承不同,接口实现相对不受限制。一个类可以实现任意数量的独立接口,并且对这样一个类的引用可以存储在任何这些接口类型的变量中。
简而言之,接口提供了继承的最重要的好处(引用可替代性),但放弃了一些功能以换取放弃一个重要的限制(无法从多个类继承)。