有关java接口和实现的问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 18:41:40
虽然在实现该接口的类中可以定义接口中没有声明的方法,但是这有什么用,别人又不知道你有这么个方法,又没在接口中声明,那么这个方法谁来用呢?
二楼的 请问为什么不能用setString来使str为abc,你的意思是说在实现接口的类的实例中是不能使用setString这个方法的是吗? 再次谢谢两位~~

public class MyJava implements ActionListener {
public void actionPerformed(ActionEvent e) {
}
public static void main(String[] args) {
}
}

类MyJava中,方法main就是定义的一个ActionListener接口中没有的方法,但是没有这个方法,Application就无法运行

我想说的是在实现某一接口的类中定义的其他方法都是留做自己用的
类实现接口要完成它所有声明的方法
但并不是此类中所有的方法都必须是接口中的方法

这样跟你讲吧`
TestIf.java
TestImpl.java
这样一个接口一个实现,你可以用一个不用管实现是什么,只用创建接口的TestIf的引用就能使用TestImpl里的方法,而没有在接口里声明的方法,你必须去new一个TestImpl才能使用它,在实际运用中你会发现做接口是个很好的习惯`~

楼下说的很好,impl里面可能是很多非public的方法只限于本身使用这样就没有必要放在接口里,比如接口中
public String getString();
实现中
private String str;
private String setString(){
this.str = "abc";
return str;
}
public String getString(){
return setString();
}
你能够用getString得到str为abc, 而不能用setString来使str为abc...