目录
一. 抽象类
1.1 抽象类的定义
1.2 抽象类的实现
1.3 抽象类的作用
1.4 抽象类注意事项
二. 接口
2.1 接口的定义
2.2 接口的实现
2.3 接口的作用
2.4 接口注意事项
三. 总结
一. 抽象类
1.1 抽象类的定义
如果一个类中没有包含足够的信息来描绘一个具体的对象, 那么这个类就可以被定义为抽象类. (其实就是父类)
1.2 抽象类的实现
使用 abstract 关键字 来修饰抽象类, 以及抽象方法.
1.3 抽象类的作用
a.
抽象类就是用来检查父类中的抽象方法有没有在子类中被重写.
(很多语法的出现就是用来提前发现问题的)
b.
抽象类 就是为了被继承的.
c.
抽象方法 就是为了被重写的.
1.4 抽象类的注意事项
a.
如果一个类是抽象类, 可以不必在抽象类中 实现 抽象方法.
但是,如果一个类中存在抽象方法, 那么, 这个类 必须被定义为抽象类.
b.
在抽象父类中实现了抽象方法, 那么在它的普通子类中必须重写抽象方法, 在它的抽象子类中不必重写抽象方法.
c.
抽象类不能够被实例化(因为抽象类不能够描述一个具体的对象)
d.
抽象方法需要满足重写的要求.
(抽象方法不能被 static final private 修饰,
子类重写方法的访问权限 >= 父类重写方法的访问权限)
e.
abstract 与 final 是不能共存的.
(final 修饰的类是密封类, 不能够再被其他类继承. abstract 修饰的抽象类就是用来被继承的.
final 修饰的方法是密封方法, 是不可变的, 不能够被重写. abstract 修饰的密封方法就是用来被重写的.)
f.
在抽象类中可以实现 普通成员变量 和 普通成员方法 以及 构造方法(因为存在普通成员变量).
二. 接口
2.1 接口的定义
接口是多个类的公共行为规范.
接口的含义是: ... 具有...的特性.
2.2 接口的实现
a.
使用 interface 关键字来修饰接口.
b.
使用 implements 来实现接口
2.3 接口的作用
解决了 JAVA 中不能够 多继承(一个子类继承多个父类) 的问题.
2.4 接口的注意事项
a.
接口中的属性 默认被 public static final 修饰.(属于类的静态常量)
(以上5种方式定义的属性, 都是被public static final 修饰)
b.
接口中的成员方法 默认被 public abstract 修饰.
c.
接口中可以实现 非抽象方法(有具体实现的方法), 但是必须被 static 或者 default 修饰.
d.
接口中不能够 有 构造方法.(因为接口中 的属性都是 静态常量, 根本就不需要调用构造方法来进行初始化)
e.
接口不能够被实例化.
(因为在接口中不允许实现构造方法, 所以无法实例化对象
其次, 接口本质上也是抽象的, 不能够被实例化).
f.
接口之间可以进行合并.(使用 extends 关键字来实现)
三. 总结
a. 抽象类就是用来 观察父类中的抽象方法 有没有 在子类中被重写.
b. 抽象类的注意事项是 重点.(需要经常回顾)
c. 接口 的含义是: ...具有...的特性.
d. 接口解决了 java 中不能够多继承的问题.
e. 接口的注意事项也是重点(需要经常回顾)