关于extends和implements创建的内部类的问题,谢谢帮忙

litlq 2007-10-03 05:38:53
谢谢高手解疑,问题是这样的:
代码一:
abstract class A{
abstract public void fun1();
}
public class Outer {
public static void main(String[] args) {
class Inner implements A{ //编译器报错:此处需要接口
public void fun1(){
System.out.println("implement for fun1");
}
}
new Outer().callInner(new Inner()); //编译器报错:无法将 Outer 中的
//callInner(A) 应用于 (Inner)
new Outer().callInner(new Inner());
}
public void callInner(A a){
a.fun1();
}
}
代码二:
abstract class A{
abstract public void fun1();
}
public class Outer {
public static void main(String[] args) {
class Inner extends A{
public void fun1(){
System.out.println("implement for fun1");
}
}
new Outer().callInner(new Inner());
}
public void callInner(A a){
a.fun1();
}
}
两段代码只有两处标记处(implements 和 extends)不一样,代码一报错(),代码二可以正常运行,这是为什么呢,两种方法创建的内部类有什么区别呢。 谢谢!
...全文
156 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jishu_vip 2008-03-05
  • 打赏
  • 举报
回复
class A exetnds B implements C,D

B is clss(not final class)

C,D are interface
luzhide 2007-10-03
  • 打赏
  • 举报
回复
路过~~
litlq 2007-10-03
  • 打赏
  • 举报
回复
最后试一次,再给不了分也没办法了
litlq 2007-10-03
  • 打赏
  • 举报
回复
管理帖子送分之后如何提交呢?我试了很多按钮都不行,我这网速好慢,郁闷死了,试了N次了。
litlq 2007-10-03
  • 打赏
  • 举报
回复
怎么没有送分的按钮呢,晕了
litlq 2007-10-03
  • 打赏
  • 举报
回复
你这么一说我才注意到,哎呀,真是太感谢了,终于弄懂extends与implements的区别了。
johnsoncr 2007-10-03
  • 打赏
  • 举报
回复
implements是用于实现接口时用的关键字.接口是用interface定义的.
class Inner implements A{ //A只是一个抽象类,并不是接口.类与类之间不存在implements关系
jiangguanghe185 2007-10-03
  • 打赏
  • 举报
回复
你这怎么行呢!老兄,你那都是一个粗象类,又不是接口,你怎么可去实现它呢!对它只能继承啊!

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧