Abstract Class和Interface的区别

首先Abstract Class是抽象类,而Interface是接口,一个类可以继承多个接口,但是继承一个抽象类。下面我们用表格的形式统计一下两者的不同:

  Abstract Class Interface
实例化 不能实例化 不能实例化
类继承 一个类只能继承一个抽象类 一个类可以继承多个接口
数据成员 可以有自己的成员 必须是public static final类型,是静态的,不能修改
方法

可以有非抽象方法和抽象方法,对于抽象方法,子类中必须将其实现。

可以包含静态方法

所有的方法都是抽象的,子类不能对其进行重新定义,且必须实现。

不能包含静态方法

变量 可以私有,其值可以在子类中被重新定义和赋值 不可私有,且必须给定初始值,子类中不能将其重新定义和赋值
构造方法 可以有构造方法 不能有构造方法
实现 需要继承 需要实现

 

对象可以被foreach遍历的前提是:需要实现 IEnumerable 接口或声明 GetEnumerator 方法的类型

 

posted @ 2022-05-19 21:29  不负当下  阅读(69)  评论(0)    收藏  举报