java高手请帮忙我啊,关于接口问题

来源:百度知道 编辑:UC知道 时间:2024/05/10 05:50:23
请看,我先定义了一个接口
public interface MyInterface {
public void add(int x,int y);
public void volume(int x,int y,int z);
}
保存名为MyIvnterface.java
然后实现接口
public class InterfaceDemo implements MyInterface{
public void add(int x,int y){
System.out.print(" "+(x+y));
}
public void volume(int x,int y,int z){
System.out.print(" "+(x*y*z));
}
public static void main(String args[]){
MyInterface d=new InterfaceDemo();
d.add(23,12);
d.volume(12,3,5);
}
}
能运行,我想问的问题是MyInterface d=new InterfaceDemo();和MyInterface d=new MyInterface ();有什么区别,好像答案都一样,定义接口有什么意义??
问题错了,是InterfaceDemo d=new InterfaceDemo(); 和MyInterface d=new InterfaceDemo(); 有什么区别,接口是不能示例化,请问这2个有区别么

MyInterface d=new InterfaceDemo(); 可以编译。
MyInterface d=new MyInterface ();不可以编译。因为接口不可以使用new来实例化。

定义接口通常是为了描述具有某种能力,区别于继承。
比如汽车是父类,宝马汽车是子类,
而可以驾驶作为接口。
以为可以驾驶的不仅仅有汽车。

还有像Java里面的Compareable接口,表示可以比较。

RealInterface1 real1=new RealInterface1();
real1只能为RealInterface1的实例

Interface1 inter=new RealInterface1();

inter可以为多个实现Interface1接口的实例
inter=new RealInterface2();
inter=new RealInterface3();
inter=new RealInterface4();
应该是指不需求每个类都声明一个实例吧,,只要将第一实例重新实例化就行吧,,基类也可这样做。

我肚子饿了,要吃肉,你可以把肉写成接口,至于你给我吃猪肉还是牛肉,就是具体的实现类。
再结合你的程序,比较一下,就好理解了

适合规范化编程,对于
InterfaceDemo d1=new InterfaceDemo();
MyInterface d2=new InterfaceDemo();
则如果InterfaceDemo 类再增加方法,用d1可以访问,用d2就不能访问。所以如果有多个类实现这个接口,要规范时就要用到d2这种方式。
在你以后的学习中就会接触到的。