abstract class和interface

来源:互联网 发布:abp源码 编辑:程序博客网 时间:2024/05/21 17:54

抽象类概念

抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处

 

抽象类的特点

包含抽象方法的类一定是抽象类.

抽象方法和抽象类都用关键字abstract修饰

构造方法,static方法都不能定义为抽象方法。

抽象方法不能使用private访问控制符修饰。

抽象方法只需要声明,不需要实现。

抽象类中可以定义构造方法,但是抽象类不能创建对象。

子类继承抽象类时,需要重写抽象类中所有的抽象方法,除非子类也是抽象类。

 

语法:

[访问控制符] abstract class类名{

0n个属性;

[修饰符]返回值类型 方法名([参数列表]){

方法体;

[return 返回值;]

}

[修饰符] abstract返回值类型 方法名([参数列表]);

}

接口的概念

抽象类是从多个类中抽象出来的模板,如果将这种模板进行的更彻底,则可以提出一种更加特殊的“抽象类”-----接口(interface).接口中没有普通方法,接口中所有方法都是抽象方法。

接口的特点

一个类只能继承一个直接的父类,但是一个类可以实现多个接口

接口中不能定义构造方法,接口不能实例化。

接口中方法全部都是抽象方法,接口中属性全部都是全局常量

当一个类实现(继承)某个接口时,他必须实现接口中所有的方法,除非这个类定义为抽象类

语法:

[修饰符] interface接口名{

全局常量;

抽象方法;

}

 

abstract class(抽象类)interface(接口)的区别

抽象类可以有构造方法,接口中没有

抽象类中可以有普通成员变量,接口中没有

抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的

抽象类中的抽象方法的访问类型可以是publicprotected和默认缺省,但接口中的抽象方法只能是public类型的

抽象类中可以包含静态方法,接口中不能包含静态方法

抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型

原创粉丝点击