继承
介绍
概述:Inheritance把多个子类的相同属性提取到父类,子类继承并直接使用。
特点:单继承。
子类继承父类,可以得到(除构造方法外)父类的全部(包括私有)属性和方法,不能直接访问父类私有属性和方法,可以通过公共的setget方法访问。
Object类是顶级父类,所有类间接或者直接继承自它。
意味着所有的Java对象都拥有Object类的属性和方法。如果在类的声明中未使用extends关键字指明其父类,则默认继承Object类。
注意:如果父类有有参构造方法,子类重写父类必须提供有参构造方法(或者父类再提供一个无参构造),子类有参构造的参数列表必须包含父类构造方法里的参数。
Eclipse使用Ctrl+T查看继承结构

示例:
效果:

方法重写overwrite
概述:子类重写父类的方法,子类行为覆盖父类行为。重写是实现多态的必要条件。
要点:
1、
“==”: 方法名、形参列表(参数个数、参数类型、参数顺序)相同。2、
“≤”:返回值类型(引用类型≤基本类型==)、异常类型,子类小于等于父类。
如图:

3、
“≥”: 访问权限,子类大于等于父类。
示例:
重写与重载区别
名称
范围
方法名
参数列表
返回值类型
修饰符
异常
重写
子父类
相同
相同
相同或子类
大于等于
<=
重载
本类
相同
不同(个数/类型/顺序)
无要求
无要求
无要求
toString()
概述:toString方法来自Object超类,我们可以类中重写它。
方法源码:
示例:
效果:
==与equals
==比较基本(比较值)与引用数据类型(比较对象地址值),
equals方法比较引用数据类型
Object类的equals方法默认比较两个对象的hashcode值。
String类的equals方法比较字符串内容是否相等(常用)。
示例:
手写equals
重要
比如一个类Pig,两个属性姓名年龄
super
super代表父类对象的引用,通过super关键字访问父类中被子类覆盖的方法或属性。
使用super调用普通方法,语句没有位置限制,可以在子类中随便调用。
如构造方法第一行代码无显式的调用super(...)或者this(...),Java默认会调用super(),调用父类无参构造方法。也可以调用有参构造方法,如super(id, name)。
属性/方法查找顺序
==比较基本(比较值
依次查找当前类至上溯每个父类一直到Object,无编译错误,有结束寻找。
构造方法调用顺序,先父后子。
示例
效果:
Last updated
Was this helpful?