`

abstract class vc interface

    博客分类:
  • java
阅读更多

abstract class 和 interface 都提供可以不具体实现的方法。其中一个类不能继承多个abstract方法,但是可以实现多个interface。java类没有多继承,但是通过interface来来补充。通过实现过个interface,来实现java多重继承。 java中所有的对象可以用类来表示,但并不是所有的类都是来描绘对象的。用来描绘某一类对象共有的本质就是抽象。

 

 different 从语言层面讲:

abstract class :

可以有 自己的 (private)数据成员。 有些方法可以具体实现。

abstract class可以提供某些方法的部分实现,而interface不可以,这大概就是abstract class唯一的优点吧,但这个优点非常有用。如果向一个抽象类里加入一个新的具体方法时,那么它所有的子类都一下子都得到了这个新方法,而 interface做不到这一点,如果向一个interface里加入一个新方法,所有实现这个接口的类就无法成功通过编译了,因为你必须让每一个类都再 实现这个方法才行。

 

 

 interface :

不可能有自己的数据成员,只能有静态的,不能被修改的 数据成员。即就是 static final。

所有的成员方法都是abstract的。从这方面说interface是abstract class 的一种特殊情况。

分享到:
评论

相关推荐

    设计模式C++代码示例-含VC工程

    C++设计模式代码: (VC工程) Creational Patterns Abstract Factory Creates an instance of several families of classes Builder Separates object construction from its representation Factory Method ...

    Sql 查询语言 示例及讲解 sql文件

    在面向对象编程中,接口是一种 abstract 的数据类型,定义了一个标准,所有实现该接口的类都必须实现该接口中的方法。例如,在 Java 语言中,我们可以定义一个接口 MainBoard,如下所示: ```java interface ...

    C# 基础面试题.txt

    - 基类中的方法需使用`virtual`或`abstract`声明。 - 派生类中的方法需使用`override`关键字。 - 示例代码: ```csharp public class Class1 { public virtual int Add() { return X + Y; } } public class ...

    C期末考试复习题附答案.docx

    10. **派生类定义**:使用`:`后接基类名称定义派生类,例如`class DerivedClass : BaseClass`。答案是B。 11. **重用代码**:继承是面向对象的特性,允许子类重用父类的代码和数据,提高代码复用性。答案是C。 12....

    C#试题汇总有参考答案.doc

    3. C#程序的基本单位:C#程序的基本单位是源程序文件(source file),其中包含了一个或多个类(class)。 4. 用户标识符:在C#中,用户标识符是程序员自定义的变量、函数等名称。合法的标识符不能以数字开头,不能...

Global site tag (gtag.js) - Google Analytics