继续是面对对象的一个显著特征。
特点:
1.使用extends关键字来表示继承
2.继承关系相当于父与子,子继承了父,可以使用父类中定义的资源
3.只支持单继承,不能同时继承多个,相当于一个儿子只能有一个爸爸。但是可以允许一个父类被多个子类继承。相当于一个爸爸有多个儿子,
4.父类的私有资源是不能被子类进行使用的,但也是进行了继承。(私有资源子类不能看见和使用)
5.子类继承了父类,拥有父类的资源后可以随意进行更改使用,也可以添加任何资源。
定义父类:私有资源由于被private修饰,所以没有访问权限
定义子类并且继承父类:
Super 与this
在继承时,子类可能会出现与父类相同变量名称的元素。
当变量名相同时,进行调用可以使用this 与super 进行选择子类或者父类中的元素
super 指父类中的元素 成员变量
this 指当前类中的元素 成员变量
定义父类与子类相同变量名的元素
在java中有个就近原则,当没有指定变量位置时,变量名又相同,则谁近就调用谁
构造函数:
构造函数的规格:public 类名(){} 构造函数语法要求,构造方法的名字必须是本类类名
子类继承了父类,子类在创建对象时,默认先调用父类的构造函数。
原因是子类在第一行默认存在一个super()。
构造函数存在三种形式:第一种无参,没有任何参数的
第二种含参,有个别参数的
第三种全参,即所有定义的变量都在
当子类继承父类时,构造函数是不能被继承的,因为语法要求,构造函数的的名字必须是本类类名,不能再子类种出现一个父类名字的构造方法。
且子类创建对象时,默认会调用父类的构造函数
重写Override
子类继承了父类种的方法,可以进行使用。当父类中的方法满足不了子类所需要的,子类就可以进行更改重写。父类中的私有方法是不能被重写的。但是子类可以定义与父类相同方法。
重写可以添加@Override进行判断是否正确重写。构造方法是不能被重写的。因为构造规则方法名必须与本类名一致。
重写的原则:两同 两小 一大
* 两同:子类方法的 方法名与参数列表 和父类方法的相同
* 一大:子类方法的 方法修饰符权限 >= 父类方法的
* 两小:子类方法的返回值类型 <= 父类方法的返回值类型
* 注意:这里所说的<=是指子类方法的返回值类型是父类返回值类型的子类
* 或者与父类的返回值类型一致,如果父类方法的返回值类型是void,子类保持一致即可