继承
继承
使用extends 关键字
语法:
public class Student extends Person子类Student继承父类Person
Ctrl+H快速打开继承树
在Java中,所有的类都默认直接或间接继承Object类
super调用父类中的属性或方法
父类:
public class Person {
//父类中的属性
protected String name="kuangshen";
//父类方法
public void print()
{
System.out.println("Person");
}
}
子类:
public class Student extends Person {
private String name="qinjiang";
public void print()
{
System.out.println("Student");
}
public void test(String name)
{
System.out.println(name);
System.out.println(this.name);
System.out.println(super.name);
}
public void test1(){
print();
this.print();
super.print();
}
}
主函数测试1:
public class Application {
public static void main(String[] args) {
Student student = new Student();
student.test("kokomi");
}
}
输出结果:
kokomi qinjiang kuangshen
//主函数测试2:
public class Application {
public static void main(String[] args) {
Student student = new Student();
student.test1();
}
}
Student Student Person
当在主函数中new 一个子类时,调用构造器的顺序是先调用父类构造器,再调用子类构造器
public class Student extends Person{
public Student()
{
super();//默认调用父类构造器,可以省略不写
}
}
子类可以继承父类中私有的方法,只是不能直接调用
super与this
使用super的注意点:
- super调用父类构造方法,必须在构造方法的第一个
- super必须只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法!
与this相比:
-
代表的对象不同:
- this:代表本身调用者的这个对象
- super:代表父类对象的应用
-
前提:
- this:没有继承也可以使用
- super: 只能在继承条件中使用
-
构造方法:
- this();本类的构造
- super(); 父类的构造
浙公网安备 33010602011771号