继承
现实生活中的对象具备共同的特性,例如,教师和学生都是人,都具有人的共性,例如姓名、年龄等,这样,我们就可以先定义人这一类,然后让教师和学生继承人的这些特性,从而可以代码复用
格式
class People {
...
}
class Teacher extends People {
...
}
用extends关键字即可实现继承
注意事项:
java中的继承是单继承,也就是说,一个类只能继承一个父类
重写override
如果子类的成员方法和父类的成员方法重名,就叫做重写,调用时,符合以下规则:
new的是谁,就调用谁的成员方法
例如下列代码,此时Teacher类中有work方法,Employee中有work方法,优先调用Teacher的work方法
Teacher teacher = new Teacher();
teacher.work();
重写时,可以在重写的方法前加上@override用于确认是否是重写
@Override
public void work(){
...
}
构造方法
在子类的构造方法中,可以用super([参数列表])访问父类的构造方法
备注:无参构造默认赠送super();
class Employee {
public Employee(){
}
}
class Teacher extends Employee {
public Teacher() {
super()
}
}
访问父类成员变量/方法
如果在本类中想要访问父类的成员方法,可以用super.成员方法的方式进行访问
class Employee {
public void method() {
}
}
class Teacher extends Employee {
@Override
public void method() {
super.method()
}
}
this
this除了可以访问本类的成员变量、本类的成员方法外,还可以访问本类的构造方法
class Teacher {
String name;
public Teacher() {
}
public Teacher(name) {
this();
}
}
内存图解
抽象类
部分类的方法无法描述,比如动物的eat方法,知道动物吃东西,但不知道吃什么,也就是说,知道动物类有这个方法,但是方法体是什么不知道,此时可以用abstract创建抽象类和抽象方法
具体创建方式如下所示
public abstract class animal {
public abstract eat();
}
注意事项:
抽象方法只能在抽象类中
抽象类不能创建对象
抽象类不一定有抽象方法,但是有抽象方法的一定是抽象类
实现类
通过使用子类继承抽象类,并对抽象类的所有抽象方法进行重写之后,该类才能成为一个实现类。