java当中继承(extends)的格式:
在继承的关系当中“子类就是一个父类”,也就是说子类也可以当做父类看待,例如,父类是员工,子类就是讲师继承了父类员工的本能给老板干活,领工资
定义子类的格式:
public class 子类名称 extends 父类名称
父类不用写extends
定义父类的格式:
public class 父类名称
子类可以继承父类中的方法,也就是子类可以调用父类中的方法,因为有继承关系吗,但是父类没办法调用子类当中的方法,而且一个子类只能有一个父类,就像人只有一个爹一样,但是子类可以继承父类继承的父类当中的方法也就是爷爷类,当我们用别的类创建一个父类对象并且调用的时候我们会发现,调用父类的时候父类里面没有子类的方法,但是当我们创建子类的对象的时候,却可以发现子类继承的那个父类中的方法我们就可以调用。总之,使用父类的东西,发现不了子类中的东西
创建子类对象的时候:
子类可以拥有从父类那继承下的东西
继承中成员变量的访问特点
方法,变量重名的情况:
在父类子类继承关系中成员变量重名的情况下,则创建子类对象的时候有两种方法:
1.直接通过子类对象访问成员变量:
等号左边是谁就优先用谁,没有则向上找
ZI zi=new ZI();
System.out.println(zi.num)//则是用的子类方法中的num变量不是父亲中的,如果子类没有那么则向上继续找,如果左边是父类那么就优先用父类中的num变量,如果都没有那就代表这个变量就是瞎掰的
2.间接通过成员方法访问成员变量
比如调用了子类的方法,那么子类方法中的变量肯定是子类自己的,如果调用的是父类的方法,那么父类方法的变量肯定是他自己的,因为父类没有子类的东西,所以调用父类,肯定是父类当中的变量啊,使用父类的如果没有是不会向下去找子类的
简单点就是,方法属于谁就优先用谁,没有则向上找: