抽象类可以实现接口吗?

孤尽JavaSea 2008-10-30 07:39:48
我觉得不可以。也没有意义
...全文
1423 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
hernmmy 2011-02-23
  • 打赏
  • 举报
回复
可以实现。。。
Sunny_kaka 2008-10-30
  • 打赏
  • 举报
回复
学习了
南南北北 2008-10-30
  • 打赏
  • 举报
回复 1
当然可以。
hawkeyes0 2008-10-30
  • 打赏
  • 举报
回复 1
举个例子
“桌子”是一个 interface,它要有一个桌面能用来摆放东西。
“圆桌”是“桌子”的 abstract class,它定义了桌面是圆的。
“正圆桌”继承自“圆桌”,它的桌面是圆形中的正圆。
“椭圆桌”继承自“圆桌”,它的桌面是圆形中的椭圆。

在Java中,如果抛开 Object 类,那么 Interface 就是最高层次的抽象,其次是 abstract class,接下来是 class,最后是程序运行的时候产生的对象。
jianghuxiaoxiami 2008-10-30
  • 打赏
  • 举报
回复
6,7楼解释的很清楚
arrowzong 2008-10-30
  • 打赏
  • 举报
回复
感觉有点像脱裤子放屁的感觉,LZ其实不脱也可以放的
renmms 2008-10-30
  • 打赏
  • 举报
回复
3楼6楼说的很详细了
abc130314 2008-10-30
  • 打赏
  • 举报
回复
有意义啊。如果子类都用一样的方法,那直接在父类的方法里面实现了。
难道还要每个子类都去实现一遍同一个接口一模一样的方法?
liyali_23 2008-10-30
  • 打赏
  • 举报
回复
学习了。
jiannye 2008-10-30
  • 打赏
  • 举报
回复
抽象类可以实现接口
接口中只能有abstract方法,而且interface中的方法都是abstract的并且是public的
举个自己作业上的例子
类A,B,C,D继承与E (抽象类)子类中包含排序,计算的功能
E继承与F,G两个接口 F中有计算的功能,G中有排序的功能
这样的设计个人认为还是蛮好的
所以说抽象类实现接口个人认为还是有些意义的

不知道我说的对不对 还请高人指教!
lxw_happy 2008-10-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 AppleBoy2008 的回复:]
1.抽象类肯定可以实现接口;
2.这不是有没有意义的事情,是一种思想,当你自己写的类想用接口中个别方法的时候(注意不是所有的方法),那么你就可以用一个抽象类先实现这个接口(方法体中为空),然后再用你的类继承这个抽象类,这样就可以达到你的目的了,如果你直接用类实现接口,那是所有方法都必须实现的;
3.这种思想在java.swing.event包中运用的非常多,里面一般以Adapter为后缀的都是抽象类,它们都实现了特定的事件…
[/Quote]

mark楼主说的很好了,这是一种设计上的思想,的确在swing 中的应用就是理解这个问题的很好的例子
C0150 2008-10-30
  • 打赏
  • 举报
回复
不错,学习了。。
shuaiAWP 2008-10-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 AppleBoy2008 的回复:]
1.抽象类肯定可以实现接口;
2.这不是有没有意义的事情,是一种思想,当你自己写的类想用接口中个别方法的时候(注意不是所有的方法),那么你就可以用一个抽象类先实现这个接口(方法体中为空),然后再用你的类继承这个抽象类,这样就可以达到你的目的了,如果你直接用类实现接口,那是所有方法都必须实现的;
3.这种思想在java.swing.event包中运用的非常多,里面一般以Adapter为后缀的都是抽象类,它们都实现了特定的事件…
[/Quote]
mark
weishuang 2008-10-30
  • 打赏
  • 举报
回复
抽象类定义在接口与真正的实现类之间有一个重要的作用,就是过滤掉一些不需由真正的实现类重写的方法。举一个例子,譬如说HttpServlet这个抽象类类中有init(),doGet(),doPost(),destroy()等方法,但是真正要让程序员实现的只有doGet(),doPost(),就是因为HttpServlet中定义了对一些方法的默认实现,这样一个类在扩展它时,就不必重写所有HttpServlet或者其父类所实现的所有接口的所有方法。经常是这样,即使我们重写init()方法,也只是调用super.init()
AppleBoy2008 2008-10-30
  • 打赏
  • 举报
回复
1.抽象类肯定可以实现接口;
2.这不是有没有意义的事情,是一种思想,当你自己写的类想用接口中个别方法的时候(注意不是所有的方法),那么你就可以用一个抽象类先实现这个接口(方法体中为空),然后再用你的类继承这个抽象类,这样就可以达到你的目的了,如果你直接用类实现接口,那是所有方法都必须实现的;
3.这种思想在java.swing.event包中运用的非常多,里面一般以Adapter为后缀的都是抽象类,它们都实现了特定的事件接口,大家可以看看。
zhou_new 2008-10-30
  • 打赏
  • 举报
回复
为什么没有意义呢;
关键是这些接口不一定是你自己写的接口啊,可能是API中定义的接口,然后你来用abstract类实现啊;真正到代码写的多的时候就可能会用上了;
另外,问这个之前你其实可以自己写段代码验证一下,至于原理不懂的话就可以来求解啊;

呵呵,多说了一点点。
guoxyj 2008-10-30
  • 打赏
  • 举报
回复
没意思
shuaiAWP 2008-10-30
  • 打赏
  • 举报
回复
抽象类里可以含有非抽象的方法所以可以实现接口
不过确实没什么意义吧
还得在写一个类继承抽象类


interface A{
void fun1();
}
abstract class B implements A{
public void fun1() {
System.out.println("hello!");
}
}

public class C extends B{
public static void main(String[] args) {
C c = new C();
c.fun1();
}
}
gs840120 2008-10-30
  • 打赏
  • 举报
回复
感觉上可以,也是没有意义;
期待高人解答
chaohi 2008-10-30
  • 打赏
  • 举报
回复

说下我的一家之言:

接口表明系统具有的功能,系统实现某个接口,意味着系统具有了某个功能.接口是比抽象类更加抽象的!

举例:
接口类型:A, 抽象类:M,普通类:N

M,N 都实现 接口A ,那么,表示M和N 是必须实现同样的一个功能,M N 以及它的子类都可以被A的类型变量所引用.



搞笑,我也搞不大懂我都说了些什么.呵呵,修炼不够啊.

62,615

社区成员

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

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