A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

4 个回复

倒序浏览
抽象类与接口的区别:
                          1.类与抽象类之间存在的是继承关系,并且是一种单继承
                             类与接口之间存在的是实现关系,可以多实现
                          2.抽象类是继承,也就是说父类中定义的是子类中公共的行为
                             接口是实现 ,也就是接口中定义的是子类的扩展功能
                          3.抽象类中有抽象方法,也可以存在实例方法,可以让子类直接使用
                             接口中都是抽象的方法,要想使用,只能去做个实现类去实现接口,使用实现类中的方法。

评分

参与人数 1技术分 +1 收起 理由
王海宇 + 1

查看全部评分

回复 使用道具 举报
抽象类和接口的共同点:
1.接口和抽象类都不能被实例化,他们都位于继承的最顶端,用于被其他类继承或实现。
2.他们都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。
上面是两者的共同点,那么我主要说一下主要的区别。
1.首先既然既有接口又有抽象类,他们的设计目的肯定是不一样的。
接口体现的是一种规范,对于接口的实现类而言,接口规定了实现着必须要向外提供哪些功能。接口是多个程序模版间的耦合标准。
而抽象类作为系统中多个子类的共同父类,体现的是一种模版式设计。抽象类作为多个子类的父类,可以被对当成系统实现过程中的中间产品,而且这个中间产品已经实现了部分功能,但是还需要进一步的完善。
2.在使用方法上,两者的不同之处。
接口里只能包含抽象方法。抽象类则既可以包含普通方法也可以包含抽象方法。
接口里不能定义静态方法(或者叫类方法),但是抽象类可以。
接口里只能定义静态(或者类)Fields,但是抽象类则既可以定义类fields也可以定义成员fields。
接口没有构造器,但是抽象类有,同时,抽象类里的构造器并不是让用于创建对象,而是供子类调用来完成子类的构造。
接口里不能包含初始化块,但是抽象类则可以。
一个类可以实现多个接口,但是最多只能有一个抽象父类。同时我们也可以看到接口在一定程度上弥补java不能多继承的缺点。

上面的东西是本人的理解,希望对你有帮助。

评分

参与人数 1技术分 +1 收起 理由
王海宇 + 1

查看全部评分

回复 使用道具 举报
看看..........顶
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马