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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 贾波 中级黑马   /  2013-11-28 10:29  /  1179 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

abstract class和interface有什么区别

4 个回复

倒序浏览
abstract:抽象。
1、抽象类一定包含抽象方法。
2、抽象类中的抽象方法只需声明而不需要实现。
3、抽象类必须要被继承,且子类必须要覆写抽象类中的全部抽象方法。

interface:接口。
1、接口由全局常量和公共的抽象方法组成。
2、接口中的抽象方法必须,且只能是public权限。
3、接口可以通过implements关键字实现。


评分

参与人数 1技术分 +1 黑马币 +3 收起 理由
狼王 + 1 + 3 赞一个!

查看全部评分

回复 使用道具 举报
概念性的不说,都是抽象出来的对吧。
应用上最大的区别就是,一个是单继承,父子关系。
一个是多实现,只要某一方面的特性符合接口的规范就可以实现。

评分

参与人数 1黑马币 +6 收起 理由
狼王 + 6 赞一个!

查看全部评分

回复 使用道具 举报
概念我想不用说了吧,直接比较区别:
1.方法
        抽象类:可以有抽象方法,也可以有非抽象方法;甚至没有抽象方法也行,但那样只是为了不让这个类被实例化。
        接口:接口中的方法必须都是抽象的
        例:
  1. public abstract class Demo
  2.         {
  3.                 public abstract show();
  4.                
  5.                 public void run()
  6.                 {
  7.                         System.out.println("跑起来");
  8.                 }
  9.         }

  10.         public interface Demo
  11.         {
  12.                 public abstract show();
  13.                 public abstract run();

  14.          }
复制代码




2.成员变量
        抽象类:可以有普通成员变量
        接口:没有普通成员变量,接口中的成员变量实际上是被final的常量

3.构造方法
        抽象类:可以有构造方法
        接口:不可以有构造方法--因为接口中方法都是抽象的,构造方法需要方法体,即使是空方法体。

4.修饰符
        抽象类:抽象类中的抽象方法的访问类型可以是public,protected
        接口:接口中的抽象方法默认为public abstract。

5.继承和实现
        一个类只能集成一个抽象类,但可以实现多个接口


评分

参与人数 1技术分 +1 收起 理由
狼王 + 1 不错哦。。。。

查看全部评分

回复 使用道具 举报 1 0
我再补充一下吧 接口中不能有构造方法,抽象类中有构造方法,至于为什么:构造器是属于类自己的,不能继承。因为是纯虚的,所以接口不需要构造器。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马