黑马程序员技术交流社区

标题: 抽象类和接口的区别 [打印本页]

作者: 青皮核桃    时间: 2015-6-21 16:21
标题: 抽象类和接口的区别
抽象类和接口的区别是什么?{:3_49:}
作者: zhao_HHH    时间: 2015-6-21 16:36
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 类型的。希望对你有帮助。
作者: fyg408224345    时间: 2015-6-21 21:12
类中有抽象方法就一定是抽象类。而接口中只有抽象方法和常量。抽象类中除了抽象方法还可以有普通方法。抽象类有构造函数,而接口没有构造函数。
作者: 金亮0602    时间: 2015-6-21 21:33
好像别人有问过,去看看,要不去观摩一下阳哥的笔记
作者: 繁华落幕    时间: 2015-6-21 21:42
抽象类可以有非抽象方法
接口中必须全部是抽象方法
作者: l李伟    时间: 2015-6-21 21:49
下面说的额很对
作者: heisanheisan123    时间: 2015-6-21 22:21
1楼说的差不多了
作者: Foundmoon    时间: 2015-6-21 22:22
属性不同,类是继承,接口是实现
作者: Coolman    时间: 2015-6-22 13:29
接口        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.实现接口的时候,其中有的方法没有实现







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2