抽象类里可以含有非抽象的方法所以可以实现接口 不过确实没什么意义吧 还得在写一个类继承抽象类 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(); } }
不过确实没什么意义吧
还得在写一个类继承抽象类
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();
}
}
关键是这些接口不一定是你自己写的接口啊,可能是API中定义的接口,然后你来用abstract类实现啊;真正到代码写的多的时候就可能会用上了;
另外,问这个之前你其实可以自己写段代码验证一下,至于原理不懂的话就可以来求解啊;呵呵,多说了一点点。
2.这不是有没有意义的事情,是一种思想,当你自己写的类想用接口中个别方法的时候(注意不是所有的方法),那么你就可以用一个抽象类先实现这个接口(方法体中为空),然后再用你的类继承这个抽象类,这样就可以达到你的目的了,如果你直接用类实现接口,那是所有方法都必须实现的;
3.这种思想在java.swing.event包中运用的非常多,里面一般以Adapter为后缀的都是抽象类,它们都实现了特定的事件接口,大家可以看看。
楼主说的很好了,这是一种设计上的思想,的确在swing 中的应用就是理解这个问题的很好的例子
接口中只能有abstract方法,而且interface中的方法都是abstract的并且是public的
举个自己作业上的例子
类A,B,C,D继承与E (抽象类)子类中包含排序,计算的功能
E继承与F,G两个接口 F中有计算的功能,G中有排序的功能
这样的设计个人认为还是蛮好的
所以说抽象类实现接口个人认为还是有些意义的不知道我说的对不对 还请高人指教!
“桌子”是一个 interface,它要有一个桌面能用来摆放东西。
“圆桌”是“桌子”的 abstract class,它定义了桌面是圆的。
“正圆桌”继承自“圆桌”,它的桌面是圆形中的正圆。
“椭圆桌”继承自“圆桌”,它的桌面是圆形中的椭圆。在Java中,如果抛开 Object 类,那么 Interface 就是最高层次的抽象,其次是 abstract class,接下来是 class,最后是程序运行的时候产生的对象。
说下我的一家之言: 接口表明系统具有的功能,系统实现某个接口,意味着系统具有了某个功能.接口是比抽象类更加抽象的!
举例:
接口类型:A, 抽象类:M,普通类:N
M,N 都实现 接口A ,那么,表示M和N 是必须实现同样的一个功能,M N 以及它的子类都可以被A的类型变量所引用. 搞笑,我也搞不大懂我都说了些什么.呵呵,修炼不够啊.