抽象类和接口

来源:互联网 发布:淘宝开店考试 编辑:程序博客网 时间:2024/05/18 00:30

1、抽象类

[public] abstract class ClassName {
abstract void fun();
}
①概念
被abstract修饰的类称为抽象类,一般情况下抽象类中都抽象方法,所以不能被创建对象,特殊情况下抽象类可以不含有抽象方法(无意义)。

②抽象方法
抽象类中的抽象方法必须是被public或者protected修饰(因为如果被private修饰,子类就不能去实现该方法,则无意思),缺省默认是public。

③如果一个类继承一个抽象类,则子类必须实现父类的所有抽象方法,如果有抽象方法没有被实现,则子类也必须定义为抽象类。

2、接口

[public] interface InterfaceName {

}

①接口可以说是抽象类的再抽象。极度的抽象。

②接口中变量都必须用public static final修饰,接口中的方法都必须是public abstract修饰(不写的话默认)。

③一个类可以通过implements实现一个接口,但是必须实现接口中所有的方法。(如果接口中有的方法没被实现,那么这个类必须是抽象的)

④一个类可以实现多个接口。

3、接口和抽象类的区别

①接口中的方法都是抽象的且被public abstract修饰的,抽象类中的可以有非抽象方法,而且抽象方法还可以被protected修饰。

②接口中的成员变量必须是public static final修饰的,抽象类是可以各种各样的。

③单继承,多实现。

④抽象类是对类的整体的抽象,而接口是对局部行为的抽象。

⑤抽象类是模板式设计,接口是辐射式设计(行为规范)。抽象类就是个模板,其他子类直接继承就可以使用里面的内容,当抽象类这个模板进行修改时,子类不需要修改,可以直接使用。接口是一个行为规范,当接口修改的时候,行为规范修改了,那实现他的类都得修改。

原创粉丝点击