本帖最后由 徐帅 于 2012-8-7 09:15 编辑
个人根据毕老师视频的总结:
抽象类: 当多个类中出现相同功能,但是功能主体不同, 这是可以进行向上抽取。这时,只抽取功能定义,而不抽取功能主体。 1. 抽象类的特点: 1> 抽象方法一定在抽象类中。 2> 抽象方法和抽象类都必须被abstract关键字修饰。 3> 抽象类不可以用new创建对象。因为调用抽象方法没意义。 4> 抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,(若只是覆盖部分,子类继承后仍有抽象方法,就变成了抽象类) 建立子类对象用。如果子类 只覆盖了部分抽象方法,那么该子类还是一个抽象类。 5>抽象类具有强制性,强迫子类必须复写 2. 抽象类和一般类 1> 抽象类和一般类没有太大的不同。该如何描述事物,就如何描述事物,只不过,该事物出现了一些看不懂的东西。这些不确定的部分, 也是该事物的功能,需要明确出现。但是无法定义主体。通过抽象方法来表示。抽象类比一般类多个了抽象函数。就是在类中可以定义抽象方法。 2> 抽象类不可以实例化。
接口 1. 初期理解,可以认为是一个特殊的抽象类 当抽象类中的方法全是抽象的,那么该类可以通过接口的形式来表示。 1> class用于定义类 interface 用于定义接口。 2> 接口:是不可以创建对象的,因为有抽象方法。 3> 接口需要被子类实现,子类对接口中的抽象方法全都覆盖后,子类才可以实例化。否则子类是一个抽象类。 4> 一个类可以对接口进行多实现,也弥补了多继承带来的安全隐患,所以java 对多继承进行了改良。用多实现方法来体现多继承的特性。 5> java中只有在接口与接口之间存在多继承 2 格式特点: 1> 通过interface来定义。 2> 接口中常见成员:常量,抽象方法。而且这些成员都有固定的修饰符。 常量:public static final 方法:public abstract 注意:接口中的成员都是public的,既共有的。 3. 应用特点: 1> 接口是对外暴露的规则。 2> 接口是功能的扩展。 3> 接口的出现降低了耦合性。 4> 接口型引用指向子类对象(多态)提高的程序扩展性,呈现多态
4. 抽象类和接口异同: 相同: 1> 都可以在内部定义抽象方法。 2> 通常都在顶层。 3> 都不可以实例化,都需要子类来实现。 不同点: 1> 抽象类中可以定义抽象方法和非抽象方法, 而接口中只能定义抽象方法。 2> 接口的出现可以多实现。抽象类只能单继承。 也就是说:接口的出现避免了单继承的局限性。 3> 继承和实现的关系不一致。继承:is a,实现:like a !!! 基本功能定义在类中,扩展功能定义在接口中
|