继承
extends
本质是对某一批类的抽象,从而实现对现实世界更好的建模。
public class Teacher extends Person{ }
Person是父类,Teacher是子类。Java类只有单继承,没有多继承。一个儿子只能有一个爸爸,一个爸爸可以有多个儿子。
子类继承父类,就会继承父类的所有public的方法。私有无法继承。
在Java中,所有的类都直接或间接继承Object
this子类
super父类
public class Person{//父类 public void print(){ System.out.println("person"); } } public class Student extends Person{//继承 子类 public void print(){ System.out.println("student"); } public void test(){ print();//student this.print();//student super.print();//person } }
子类的无参构造是先调用父类的无参构造再是子类的无参构造
public class Person{//父类 public Person(){//父类的无参构造 System.out.println("person无参"); } } public class Student extends Person{ public Student(){//子类的无参构造 System.out.println("student无参"); } }
public class Demo{ public static void main(String[] args){//主函数 Student student=new Student();//new一个student对象 } }
之后会先输出person无参,再输出student无参。这就说明子类无参构造的第一行有一段隐藏代码 super();
如果写出来,则要写在第一行,否则会报错。
public class Student extends Person{ public Student(){//子类的无参构造 super(); System.out.println("student无参"); } }