在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。
在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类称为子类,现有类称为父类。子类继承父类的属性和方法,使得子类对象(实例)具有父类的特征和行为。
在程序中,如果想声明一个类继承另一个类,需要使用extends关键字,语法格式如下:
class 父类{
......
}
class 子类 extends 父类 {
......
}
从上面可以看出,子类需要使用extends实现对父类的继承。
需要注意的是,Java中类的继承是单继承,即一个类只能有一个父类。但可以有多个类继承同一个父类。同时,一个类的父类可以再继承另一个父类,即多层继承。
子类拥有父类的所有属性和方法(除了private修饰的属性)从而实现了实现代码的复用。
除了继承父类的属性和方法,子类也可以定义自己的属性和方法。
重写
在继承关系中,子类会自动继承父类定义的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写。在子类中重写的方法需要和父类中被重写的方法具有相同的方法名、参数列表和返回值类型,且在子类中重写的方法不能拥有比父类方法更严格的访问权限。
重载和重写的区别:
方法重载:在同一个类中处理不同数据的多个相同方法名的多态手段。
方法重写:相对继承而言,子类中对父类已经存在的方法进行区别化的修改。
final关键字
使用final关键字做标识有“最终的”含义。
final 修饰类,则该类不允许被继承。
final 修饰方法,则该方法不允许被覆盖(重写)。
final 修饰属性,则该类的该属性不会进行隐式的初始化,所以 该final 属性的初始化属性必须有值,或在构造方法中赋值(但只能选其一,且必须选其一,因为没有默认值!),且初始化之后就不能改了,只能赋值一次。
final 修饰变量,则该变量的值只能赋一次值,在声明变量的时候才能赋值,即变为常量。
super关键字
在对象的内部使用,可以代表父类对象。
子类的构造过程当中必须调用父类的构造方法。这个过程已经隐式地使用了我们的super关键字。
如果子类的构造方法中没有显示调用父类的构造方法,则系统默认调用父类无参的构造方法。
如果自己用super关键字在子类里调用父类的构造方法,则必须在子类的构造方法中的第一行。
要注意的是,如果子类构造方法中既没有显示调用父类的构造方法,而父类没有无参的构造方法,则编译出错。
&spm=1001.2101.3001.5002&articleId=126608312&d=1&t=3&u=cd7aa2efddd647c5a79d3a9c0de3fbf0)
3318

被折叠的 条评论
为什么被折叠?



