Java笔记(十四)……抽象类与接口
抽象类概念
抽象定义:
抽象类:
抽象方法的由来:
抽象类特点
- 抽象类是具体事物抽取出来的,本身是不具体的,没有对应的实例。
- 例如:犬科是一个抽象的概念,真正存在的是狼和狗。
- 而且抽象类即使创建了对象,调用抽象方法也没有意义。
模板方法设计模式
模板方法
1: //抽象类在模板方法设计模式中的应用
2: abstract class GetTime
3: {
4: public final long getTime()
5: {
6: long start = System.currentTimeMillis();
7:
8: runCode();
9:
10: long end = System.currentTimeMillis();
11:
12: return end-start;
13: }
14:
15: //定义抽象方法提高代码复用性
16: public abstract void runCode();
17: }
抽象类相关问题
抽象类中是否有构造函数
抽象类中是有构造函数的,虽然抽象类实例对象没有意义,但是抽象类仍然可以为类中的一些成员进行初始化动作,为子类提供一个模板的作用,子类可以调用父抽象类中的构造函数来完成一部分初始化动作
抽象关键字abstract不可以和哪些关键字共存?
- private:
- private不可以被子类复写,而抽象方法要求被子类复写
- final:
- final不可以被子类复写,而抽象方法要求被子类复写
- static:
- 静态方法可以被类名直接调用,而调用抽象方法是没有意义的
抽象类中可不可以没有抽象方法?
抽象类可以没有抽象方法,仅仅为了让该类不能实例化对象
接口
格式:
interface 接口名{}
接口中的成员修饰符是固定的。
- 成员常量:public static final
- 成员函数:public abstract
- 发现接口中的成员都是public的。
- 这些固定修饰可以不写,因为是默认自动加上的。
接口的出现将“多继承”通过另一种形式体现出来,即“多实现”。
接口的特点
- 接口是对外暴露的规则。
- 接口是程序的功能扩展。
- 接口的出现降低耦合性。
- 接口可以用来多实现。
- 类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。
- 接口与接口之间可以有继承关系。
- 接口支持多继承。