继承是Java复用代码的重要的一种方法。被继承的类称为基类或父类,继承类称为派生类或子类。
一.继承格式
类的继承格式为:
实例如下:
public class TestExtends {
public static void main(String[] args) {
Student stu = new Student();
stu.setAge(17);
stu.setName("张三");
System.out.println(stu.getName());
System.out.println(stu.getAge());
System.out.println("姓名:"+stu.getName()+",年龄为:"+stu.getAge());
}
}
class Person4{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Student extends Person4{
}
如上图子类中没有定义自己的方法,但他继承了父类,所以他可以把父类的操作直接使用,当然他也可以自己定义新方法,如下:
public class TestExtends {
public static void main(String[] args) {
Student stu = new Student();
stu.setAge(17);
stu.setName("张三");
System.out.println("姓名:"+stu.getName()+",年龄为:"+stu.getAge());
stu.say();
}
}
class Person4{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Student extends Person4{
public void say(){
System.out.println("子类说的方法");
}
}
Java中只允许单继承,不允许多继承的,但可以多层继承,如图:
子类是不能调用父类的私有属性和私有方法的。可以通过公有的getter和setter方法调用。
二.子类实例化
在继承中,子类实例化是有要求的。子类实例化对象必须先调用父类的构造方法,然后再调用自己的构造方法。如图所示:
方法复写就是说子类定义了与父类中同名的方法,但在方法覆写时要考虑权限,被子类覆写的方法不能拥有比父类更严格的访问权限。其中private<default<public,如果权限缩小,编译不会通过。当方法覆写后,子类对象调用的是被覆写后的方法。重载与覆写区别如下图:
super关键字:使用super关键字可以从子类中调用父类的构造方法,普通方法和属性。和this关键字一样,super关键字必须放在子类构造方法的首行,所以它们不能同时出现,它们区别联系如下:
无论子类如何操作,最终必须先调用父类的构造方法。
final关键字:final在Java中表示最终的意思。可以使用它声明类,方法和属性,声明时注意下图:
使用final声明属性时,全部字母要大写,如INFO,TEST_OUR等等
全局常量声明如下:public static final 数据类型 变量名 = 变量值;