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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 青皮核桃 中级黑马   /  2015-6-21 16:21  /  774 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

抽象类和接口的区别是什么?{:3_49:}

评分

参与人数 1黑马币 +20 收起 理由
黑马-幻灭 + 20 赞一个!

查看全部评分

8 个回复

倒序浏览
1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。 2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。 3.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。 4.实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。 5.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。 6.抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。 7.接口中的方法默认都是 public,abstract 类型的。希望对你有帮助。
回复 使用道具 举报
类中有抽象方法就一定是抽象类。而接口中只有抽象方法和常量。抽象类中除了抽象方法还可以有普通方法。抽象类有构造函数,而接口没有构造函数。
回复 使用道具 举报
好像别人有问过,去看看,要不去观摩一下阳哥的笔记
回复 使用道具 举报
抽象类可以有非抽象方法
接口中必须全部是抽象方法
回复 使用道具 举报
下面说的额很对
回复 使用道具 举报
1楼说的差不多了
回复 使用道具 举报
属性不同,类是继承,接口是实现
回复 使用道具 举报
接口        interface
        有点类似于继承中的父类
        e.g.老师接口-- 助教 --学生接口
        接口中只能有抽象方法        abstract method
                只有方法体,没有方法的实现
        implements 实现        类实现接口
        The type Assist must implements the inherited abstract method Teacher.teach()
        类型 Assist 必须实现继承的抽象方法 Teacher.teach()
抽象类        abstract class
        包含抽象方法的类
        接口可以理解成纯抽象类
        a.编写类的时候,其中包含了抽象方法
        This method requires body instead of semicolon
        此方法需要主体而不是分号
        The abstract method study in type Person can only be defined by an abstract class
        类型 Person 中的抽象方法 study只能由抽象类来定义
        b.继承抽象类后,其父类中的抽象方法没有实现
        Cannot instantiate the type Person
        不能实例化类型 Person ,不能创建对象
        The type Student must implement the inherited abstract method Person.study()
        类型 Student 必须实现继承的抽象方法 Person.study()
        c.实现接口的时候,其中有的方法没有实现


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