Java中,类可以继承类。被继承的称为父类,继承父类的称为子类。子类继承父类中的全部属性和方法,且
可以被子类调用。
继承的格式:public class 子类名 extends 父类名{ }
子类继承父类之后,可以调用的属性与方法。条件:
1.假如子类与父类在同一个包下,那么父类中的默认、protected、public的属性和方法都能被子类调用
2.假如子类与父类不在同一个包下,子类能调用的方法有protected和public,子类对象能调用的方法只有public。
子类继承父类之后,可以添加自己的方法或者将父类的方法重写。
重写的要求:
1.存在继承关系
2.子类方法的访问修饰符必须大于或等于父类方法的访问修饰符(public>protected>默认>private);
3.返回值数据类型,方法名,参数个数,传入参数的顺序必须和父类完全一致。
子类对象会优先调用子类中的方法;如果在子类中找不到此方法,则调用父类中寻找调用。如果想优先调用父类的方法,则可以使用super.方法名();
有时候,我们需要把父类指向子类对象,那么就需要用到自动转型;
写成:父类名 对象名 = new 子类名();
自动转型后的对象只能调用父类中的方法,也可以调用子类中重写的方法,但不可以调用子类中新定义的方法。
作用:假若传参时,我们需要传入的数据类型为一个类的各个子类,则代码冗余,于是可以使用自动转型。譬如需要传入蔬菜类的子类白菜类的白菜,菠菜类的菠菜,空心菜类的空心菜。如果传入每个子类都需要定义一个方法,太麻烦了。于是我们可以用自动转型把白菜,菠菜,空心菜转型成蔬菜类,那么定义传参时只需要把数据类型定义成蔬菜类便可。