抽象类与接口

嘛是抽象类?

被abstract关键字修饰的方法只有声明,没有方法体,这玩意儿叫抽象方法

被abstract关键字修饰的类就是抽象类

1.如果一个类含有抽象方法,那么它一定是抽象类

2.抽象类中的方法实现交给子类来完成

抽象类的格式

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

抽象类的特点

有点长你忍一下

1.可以修饰方法或者类

2.被修饰的类叫抽象类,被修饰的方法叫抽象方法

3.抽象类中可以没有抽象方法

4.如果类中有抽象方法,那么该类必须定义为一个抽象类

5.子类要是继承了抽象类,要么还是一个抽象类,要么就把所有父类抽象方法重写

6.多用于多态中

7.抽象类不可以被实例化

入门代码。。。有空写

抽象类的注意事项

1.抽象方法要求子类继承后必须重写

2.private:被私有化后,子类无法重写,与abstract相违背

3.static:静态优先于对象存在,存在加载顺序问题

4.final:被final修饰后,无法重写,与abstract相违背

嘛是接口?

接口在java中是一种抽象类型,接口中的内容是抽象形成的需要实现的功能,接口更像是一种规则和一套标准

接口的格式

interface  接口名{代码...}

接口的特点

1.通过interface关键字来定义接口

2.通过implements让子类来实现接口

3.接口中的方法全部都是抽象方法(JAVA8)

4.可以把接口理解成一个特殊的抽象类(但接口不是类!!!)

5.类描述的是一类事物的属性和方法,接口则是包含实现类要实现的方法

6.接口突破了java单继承的局限性

7.接口和类之间可以多实现,接口与接口之间可以多继承

8.接口是对外暴露的规则,是一套开发规范

9.接口提高了程序的功能拓展,降低了耦合性

10.接口里是没有构造方法的,如果一个类没有明确指定它的父类,那么它默认继承*父类Object,调用的super()是Object的无参构造

11.接口里没有成员变量,都是常量。所以,你定义一个变量没有写修饰符时,默认会加上:public static final

12.接口里的方法,默认都是抽象的,方法上会默认拼接public abstract。例如:public abstract void save();

代码暂略。。。

抽象类与接口的区别

1.抽象类是一个特殊的类,抽象类中可以包含没有方法体的方法(抽象方法)

2.接口可以理解成一个特殊的抽象类,接口里的都是抽象方法,没有普通方法

3.接口会为方法自动拼接public abstract,还会为变量自动拼接public final static

4.抽象类可以有成员变量成员常量 接口只能有静态常量

5.抽象类可以有构造方法–用来给子类创建对象,接口中没有构造方法

6.抽象类和接口都不能实例化(创建对象)

7.接口可继承接口,并可多继承接口,但类只能单继承

8.抽象方法只能声明,不能实现,接口是设计的结果 ,抽象类是重构的结果

上一篇:设计模式-模板方法


下一篇:JAVA接口与抽象类辨析