JAVA里不能多继承,是不是只是因为这样在调用父类的方法时会产生二义性??如果不只是这样,还有什么原因吗
C++里面不是有虚基类解决这个问题吗,JAVA为什么不这样
实现接口和继承抽象类差不多啊,那么实现接口为什么就可以呢
多了一个接口的概念,还有些什么好处??
C++里面不是有虚基类解决这个问题吗,JAVA为什么不这样
实现接口和继承抽象类差不多啊,那么实现接口为什么就可以呢
多了一个接口的概念,还有些什么好处??
解决方案 »
- java问题。。。懂的进来帮忙看看
- 初学者都快把头发挠没了 向众人请教
- 刚学Java,请大家帮助,implements 和 extends 有什么异同,50
- 关于Upcasting(上传)
- 认为自己很熟悉Java的请进……
- 为什么JAVAC不能用重定向输出阿!
- 请教一个关于Soap和SSL的问题?十分谢谢
- 在JB5里菜单Project > Default Project Properties >Paths 中,如何把所有带空格的目录改为不带空格的目录???具体怎样操作,请说明清楚!!!!!!!!!!
- JAVA和数据库的连接。。。
- 也说applet的磁盘存取.
- 当几个引用指向同一个java对象的时候,用什么办法能让这几个引用都变成 null???
- 全部分请教:何使用“tomcat的webdav”?
接口,抽象类的区别
如果是方法的话,A中有和I同名的方法,如果B继承A实现I的话,它要实现I中的这个方法,虽然编译通过了,但是在B中访问这个方法时,调用的是实现接口I的那个方法,是不是A中的方法就相当于被重写了??另外想问下@Override这个是不是只在eclipse中才可以用,好像JCreator中用会报错
void interfaceMethod();
int CONST=10;
}class A{
public void interfaceMethod(){
System.out.println("sameA");
}
public void anotherMethod(){
System.out.println("aaa");
}
public static int CONST=20;
}class B extends A implements I{
public void interfaceMethod(){ System.out.println("sameB");
}
public void anotherMethod(){ System.out.println("bbb");
}
}
public class Test{
public static void main(String[] args){
A a=new A();
a.interfaceMethod();
a.anotherMethod();
B b=new B();
b.interfaceMethod();
b.anotherMethod();
A c=new B();
c.interfaceMethod();
c.anotherMethod();
System.out.println(a.CONST);
// System.out.println(b.CONST); //加上报错
System.out.println(c.CONST); //这个不会
}
}sameA
aaa
sameB
bbb
sameB
bbb
sameB
bbb
20
20-----------------------
上面的class A,class B extends class A后面如果换着加implements I结果也是相同的可以告诉我为什么结果是这个吗,特别是第三第四个输出,还有注释的两处
a.interfaceMethod();
a.anotherMethod();
B b=new B();
b.interfaceMethod();
b.anotherMethod();
A c=new B();
c.interfaceMethod();
c.anotherMethod();
A d=(A)c;
d.interfaceMethod();
d.anotherMethod();
System.out.println(a.CONST);
// System.out.println(b.CONST); //这句报错
System.out.println(c.CONST); //这个就不会
至于抽象类和接口,个人觉得抽象类就像画画,先画个框架,再临摹框架画再添东西,接口好像链条上的配件,配件的规格给你了,你做个什么挂上去都可以。