继承是解决编码的冗余问题,实现代码的重用。
从现有的类中获得其属性和方法,这个行为叫做继承,此时的新类称为子类,现有的类称为父类。
语法规则如下:
[访问修饰符] class 子类名 extends 父类名{
子类成员变量;
父类成员变量;
}
//访问修饰符如果是public 则在整个项目中使用,若省略则该类只能在当前包中可见。
继承的准则:
子类可以继承父类中非私有的属性和方法,子类可以添加自己的属性和方法,
子类的构造方法中可以调用父类的构造方法,object类是所有类的根类,
类只支持单一继承,只能有一个直接父类,子类可以成为其他类的父类。
如果父类中没有无参构造,则必须在子类中构造。
继承调用:
使用super关键字调用父类成员,必须是子类构造函数的第一行代码。
不仅可以访问父类的构造方法,还可以访问父类成员。
从子类中根据需求对从父类继承的方法进行重新编写,这种称为方法的重写或覆盖
方法重载和重写的区别:
重载是指在同一个类下,方法名相同但是参数列表不同(顺序,个数,顺序)。
方法重写是在继承类的关系下,不同类,方法名和参数列表相同,返回值类型一致,访问修饰符权限变大或相同,抛出异常相同缩小。
方法隐藏:
是父类和子类拥有相同的属性名或者方法,调用子类方法时,父类的方法被隐藏。
属性只能被隐藏,不能被覆盖。