黑马程序员技术交流社区
标题:
abstract class和interface有什么区别
[打印本页]
作者:
贾波
时间:
2013-11-28 10:29
标题:
abstract class和interface有什么区别
abstract class和interface有什么区别
作者:
mayor125
时间:
2013-11-28 10:48
abstract:抽象。
1、抽象类一定包含抽象方法。
2、抽象类中的抽象方法只需声明而不需要实现。
3、抽象类必须要被继承,且子类必须要覆写抽象类中的全部抽象方法。
interface:接口。
1、接口由全局常量和公共的抽象方法组成。
2、接口中的抽象方法必须,且只能是public权限。
3、接口可以通过implements关键字实现。
作者:
cuilitang
时间:
2013-11-28 11:40
概念性的不说,都是抽象出来的对吧。
应用上最大的区别就是,一个是单继承,父子关系。
一个是多实现,只要某一方面的特性符合接口的规范就可以实现。
作者:
胡陈思
时间:
2013-11-28 12:18
概念我想不用说了吧,直接比较区别:
1.方法
抽象类:可以有抽象方法,也可以有非抽象方法;甚至没有抽象方法也行,但那样只是为了不让这个类被实例化。
接口:接口中的方法必须都是抽象的
例:
public abstract class Demo
{
public abstract show();
public void run()
{
System.out.println("跑起来");
}
}
public interface Demo
{
public abstract show();
public abstract run();
}
复制代码
2.成员变量
抽象类:可以有普通成员变量
接口:没有普通成员变量,接口中的成员变量实际上是被final的常量
3.构造方法
抽象类:可以有构造方法
接口:不可以有构造方法--因为接口中方法都是抽象的,构造方法需要方法体,即使是空方法体。
4.修饰符
抽象类:抽象类中的抽象方法的访问类型可以是public,protected
接口:接口中的抽象方法默认为public abstract。
5.继承和实现
一个类只能集成一个抽象类,但可以实现多个接口
作者:
lovecx24
时间:
2013-11-29 15:50
我再补充一下吧 接口中不能有构造方法,抽象类中有构造方法,至于为什么:构造器是属于类自己的,不能继承。因为是纯虚的,所以接口不需要构造器。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2