一、如何继承
格式:子类后边 + extends 父类名
例:
1.父类
2.子类
测试
2、继承的本质就是代码的复用,子类可以使用父类已经写好的代码,如此子类就无需重新编写此类代码了。子类可以调用所继承父类的代码,而父类无法调用子类的代码。
3、继承层次
①在java继承层次当中不能互相继承。
②一个类可以被多个类当父亲,单一个子类只能继承一个父类(Java的继承仅支持单继承,及一个父亲可以有多个儿子,单一个儿子 只能有一个父亲)。
二、方法的重写
1、什么是方法
(1)方法是有访问权限的(public 公共的、protected受保护的、不写(注意是子类但是不同包也是不可以访问的)、private私有的)
(2)方法必须写上返回数据的类型,而且return返回的数据必须是该类型。如果不需要返回数据就写void在代码中直接写一个return就行。
例:
private int age(){ return 10; }
void study(){ Systeam.out.println("lll"); return; }
(3)在同一个类中,方法名可以相同但方法的签名不能相同(方法签名=方法名+参数列表的类型)
例:
void study(int age){ Systeam.out.println("lll"); return; }
void study(String name){ Systeam.out.println("lll"); return; }
(4)方法名可以使用其他的关键字进行修饰,比如static和final,他们有着不同的意义。
2、java的修饰符(public 公共的、protected受保护的、不写(注意是子类但是不同包也是不可以访问的)、private私有的)
3、方法的重载
方法的重载,发生在本类当中,在同一个类当中方法名相同但是参数列表不同,就是方法的重载。
void study(int age){ Systeam.out.println("lll"); return; }
void study(String name){ Systeam.out.println("lll"); return; }
4、方法的重写
方法的重写,发生在父子类当中,子类重新实现父类方法的功能。
注意:子类重写后子类调用重写后的,父类还是调用重写之前的不受影响
(1)为什么会有重写
继承的本质时代码的复用,在复用的过程当中父类的方法的实现不一定适用于子类,在这个时候涉及到方法的重写。方法重写之后,子类对象调用的是重写后的方法。
例:
拓展
1.B继承A,左方框是栈内存,右边是堆内存,创建的对象都放在右边堆,抽象在main执行用到了B是调用方法所以放在了左边
2.继续拓展:子类B重写父类A的方法
1.继承的本质是代码的复用,子能用父的,父不能用子的
2.java不能互相继承,一个父类可以有多个子类,一个子类只能有一个父类(Java仅支持单继承)
3.主方法放在哪里都行,但不要把类放到主方法里
4.在同一个文件里类不能加public、private之类的前缀,为每个类创不同文件单独放才能加
构造器就是构造方法
注意:子类重写后调子类对象用的是重写后的,调父类还是原方法重写前的不影响
public class 重写 {
public static void main(String[] args) { // TODO 自动生成的方法存根 ceshi3 C = new ceshi3(); C.pao(); ceshi4 B = new ceshi4(); B.pao();