继承(extends)
(1)继承的体系结构(理解):就是对要描述的事物进行不断的向上抽取,就出现了体系结构。
**先学习顶层内容,因为它是共性内容。
**一般使用的时候使用的是底层的类。
(2)继承的好处:(理解)
A:继承的出现,提高了代码的复用性。
B:继承的出现,让类与类之间产生了关系,extends来表示.
For example: public static a{ //定义了一个父类a
}
Public static b extends a{ //定义了一个子类b让它去继承父类a
}
(3)特点(理解)
A:java只支持单继承(其实确切的说是java对多继承进行了优化,避免了安全问题)。
B:java支持多重(层)继承。
(4)注意:(掌握)
A:子类可以直接访问父类中的非私有的属性和行为。
B:不要仅为了获取其他类中部分功能而去继承。
C:类与类之间要有所属( " is a " )关系,xx1是xx2的一种。
**如何判断A和B是否有继承关系?
**A如果继承B,那么就可以说A是B的一种。
(1)只抽取了很多类的方法的声明,为了保证不出问题,方法声明用abstract修饰。(掌握) (2)抽象类的特点(掌握)(演讲内容)
A:一个类如果有了抽象方法,那么这个类必须是抽象类。抽象类里边可以没有抽象方 法。
B:抽象类是不能够被实例化的。不能够创建对象的。
C:如果一个类继承抽象类,那么,它要么实现抽象类中的所有抽象方法,
要么本身也是抽象类。
(3)抽象类的成员特点:(掌握)
A:成员变量:子类可以直接继承抽象类中的成员变量。(抽象类中的成员变量可以和 以前是一样的)
B:成员方法:抽象类中分为两种方法,一种是抽象方法,这种方法在子类中必须要被 实现。
(4)举例:教师举例,学生举例,员工举例
(5)抽象类的相关问题:
A:抽象类中是否有构造函数?参照(3)里面的C。
B:抽象关键字abstract不可以和哪些关键字共存?
**private
***私有的,外部直接无法访问。
**static
***那么这个时候抽象方法就可以可以通过类名调用,但是这样是没有意义的。
**final
***final修饰的方法不能被重写。所以它和abstract冲突。
C:抽象类中可不可以没有抽象方法?
**可以。防止其他类创建该类对象。
|
|