javaSE_day08_继承
继承:
根据 已有类 派生出 新类 的技术。
优势:
1.代码重用
2.便于维护(高耦合)
注意: java类 单一继承:一个 父类 可以有多个 子类,但是子类 只能 有一个 父类。
继承父类:子类 继承 父类中的 ‘所有’ 成员 ,就像自己类中定义的一样使用。
子类不能继承父类中的:
1.父类中 private修饰的成员;
2.子类 和 父类 不在同一程序包下 ,使用默认访问修饰符的成员;
3.构造器。
--------------------------------------
继承设计原则:
里氏替换原则(LSP):在一个软件系统中,子类对象可以替换所有使用的父类对象,且程序行为没有变化。
--------------------------------------
重载: 通常一个类,方法名相同,参数列表不同,返回值无关。
方法重写:
子类中,方法名,参数,返回值类型与父类中的 一样。
注意:
1.必须 子类 ,
2.实例成员方法,
3.方法名必须一样
4.参数 一样 或 父类 擦除后 和子类相同;
5.返回值 类型和父类相同 或 子类 可以是 父类 的子类型(引用)
6.子类方法的访问修饰符 不能比 父类更严格(低)
7.异常,子类 不能 比父类的异常范围更大。
场合:
1.子类 和 父类中 的 方法的功能不同;
2.子类 修改了 父类中的功能。
例:
父类 手机 {
来电显示(){
电话号码
}
}
子类 手机{
来电显示(){
电话号码
人名
地址
照片
}
}
------------------------------------------------------
super
表示父类的范围,可以调用 父类的成员(成员变量,方法)
作用:
1.区分 子类 和 父类 同名的成员;
2.调用父类构造器
super();
位置:子类构造器中;
子类构造器的第一行代码处
注意:
子类 构造器 中 没有显示 调用父类构造 或 本类构造 , 那么 系统 会 自动分配一个 super()调用父类的 无参构造。
特殊:
父类中 没有无参构造器 ,只有带参构造器 ,
解决办法: 1)在父类中定义一个无参构造器;2) 子类构造器 中 显示调用父类带参构造器。
继承的传递:子类 可以继承 直接父类的 成员,也可以继承 间接父类的成员。
-------------------------------------------------------------------------------------------------------------------------------------
Object:所有类的基类
finalize() 垃圾回收 之前调用
强制垃圾回收:System.gc();
toString(): 对象的字符串描述信息
注意: 在使用print() 或 pintln()输出对象名时,会 自动调用toString();
equals() : 比较是否 为同一对象,同一地址
-----------------------------------------------
final修饰符:
1. 类: 不能被 子类 继承;
(1)为了类的安全性 ,不允许子类修改。
(2) 类之间的方法有复杂的调用关系。
(3) 此类是最终版本的类,不想再扩展了。
2.方法:不能被 子类 重写;
不希望子类更改 ,所有子类 使用的是父类中的同一版本的方法。
3.变量:值不能更改。常量
值不能修改。
常量的好处:
1.安全性。不允许随意更改值。
2.可维护性。一个常量值更改了,所有应用的地方就都修改了。
3.增强可读性。
-------------------------------------------------------------
什么情况会派生新类?
1.子类 增加属性.
2.子类 增加了方法。
----------------------------------------------------------
设计类 的继承关系注意:
1. 不要超过3层。
2. 可以被子类继承的类:
(1)写详细的文档说明。
(2)尽量封装。private
对所有用户都开放 public
只对子类开放 protected
对所有用户都开放,又不想被 子类更改 final
例:
手机{
private 容量;
protected set(){}
public get(){}//
}
-----------------------------------------------------
继承的优点:
1.代码重用;
2.便于维护。
继承的缺点:
1.高耦合。
2.破坏封装。
------------------------------------------------------
组合:
整体 和 局部;
体现方式:成员变量