Java基础知识:抽象类与抽象函数
interface是一种特殊的class
接口是纯抽象类
所有的成员函数都是抽象函数;
所有的成员变量都是public static final;
接口是为了方便类的调用
一个类如果要去实现某个接口,要加 implements 接口名
Java基础知识:抽象类与抽象函数
abstract class
抽象类不能制造对象,但是可以定义变量,赋给这个变量的一定是他非抽象子类的对象;
抽象类中的抽象函数没有函数体,例如:public abstract void move();
一个抽象类可以没有任何抽象方法,所有的方法都有方法体,但是整个类是抽象的。
抽象类中所有的的抽象函数必需子类的覆盖,而非抽象函数不需要覆盖。因为子类会继承父类的函数,如果不去覆盖继承来的抽象函数,那么子类就含有抽象函数,含有抽象函数的类必须要声明为抽象类。
设计这样的抽象类主要是为了防止制造它的对象出来。
Java(OOP)程序的设计原则
避免代码复制。解决方案:函数、父类;
封装。尽量private每个类的成员变量,用操作封装数据,减少类与类之间成员变量的直接调用,而是调用method,降低耦合;
可扩展性最大化。尽量使用框架+数据的模式,可以使用容器,避免硬编码。避免以后功能扩展的时候做大规模的代码改造。
Java中的类都是单根结构,所有的类都归结于Object类,所有的类都是Object的子类。Object类中有一个to String函数,所以在其他类中编写to String函数时会出现override的提示。
对于设计一个具有复杂框架的程序来说,降低耦合的一个重要方法是 让函数都定义在它所针对的那个对象的类里,让那个类能够自己解决自己的问题。