我知道Java中的接口由虚拟机作为抽象类处理。因此,Java中的每个类,抽象与否都有一个构造函数。这是否意味着接口也有构造函数?因为一方面我也有理由拥有一个构造函数,因为它们是抽象类。另一方面,它没有意义,因为接口没有任何初始化属性。 那它是如何实际运作的?
答案 0 :(得分:4)
接口没有构造函数。他们的实现做。
答案 1 :(得分:1)
所有界面都是:
interface MyInterface{
void addNumber(int amount);
void subtractNumber(int amount);
int getNumber();
}
您没有“运行”接口,并且接口不是您创建对象的东西。
实现你的接口的类确实有一个构造函数:
class MyNumber implements MyInterface{
private int myNumber;
//Here is your constructor, called when you instantiate it.
myNumber(int number){
myNumber = number;
}
//Now you need to add the methods in your interface
public void addNumber(int number){
myNumber = myNumber + number;
}
public void subractNumber(int number){
myNumber = myNumber - number;
}
public int getNumber(){
return myNumber;
}
}
所以不,界面不有构造函数。希望这有帮助!
编辑:创建对象时,调用构造函数:
MyNumber number = new MyNumber(5); //Calls the constructor and creates a new MyNumber with the value of 5.
number.addNumber(6); //Adds 6 to your number, it is now 11.
number.subtractNumber(3); //Subracts 3 from your number, it is now 8.
number.getNumber(); //returns the value of myNumber inside of your MyNumber object, which is 8.
编辑2:我想详细说明接口。你说他们没有任何启动属性是正确的。他们有实施的方法。如果您的界面中有“移动”方法,它可以应用于许多不同的东西。汽车,狗,船,飞机,树懒和蛇都在移动,但它们如何移动?汽车比树懒移动得更快,所以它的移动速度不同。当您为需要移动的任何内容创建类时,您可以更改该移动方法并根据您需要的情况进行定制。这就是界面的重点,灵活性。