一.java接口
1.接口的定义为的关键字为interface
2.接口中只能有方法和变量,变量为public static final类型,方法只能被可以为public(默认)和protected修饰,方法不能有具体的实现
3.一个类可以实现多个接口
4.一个类实现接口,必须要实现接口的所有的方法
二.抽象类
1.抽象类必须用 abstract修饰
2.如果一个类有abstract方法,这个类一定是抽象类
3.抽象类不一定有抽象方法
4.抽象类可以有自己的变量
5.如果一个类如果继承一个抽象类,如果没有实现所有的抽象方法,那它也要为抽象类
三、两者怎么选择呢?
1.抽象类是对事物的抽象,它包含属性和行为(方法)的抽象,而接口是对行为的一种抽象。我们在选择时候可以根据这点来确定。如飞机和鸟,它没有共同属性,但是他们有共同的行为——飞,这个时候我们可以用接口。而民用飞机、战斗机等他们都是飞机一种,这个时候我们可以将飞机座位一个抽象类。
2.从设计层面来说,抽象类有很多子类,它是一种模板式方法。接口是一种行为规范,它是一种辐射式设计。什么是模板式方法呢?举个例子:PPT b,c,d都使用了A模板,现在A模板中增添了一个公共的功能,我们不需要对b,c,d就行改变。什么是辐射式设计?举个例子:上帝创造了动物,给每个动物都创建了吃、走等方法,各个动物具体的实现都不同,有一天上帝觉得动物们动的太慢了,于是又增加了一个跑的方法,那么每个动物都要有一个新的具体实现跑的方式。