Super的基本使用
Super的基本使用
/*
1.在Java中,所有的类,都直接或者简介继承 Object 类
2.contr + h 可以查看 继承的层次结构
3.java中只有单继承,没有多继承(子类只能有一个父类,父类可以有多个子类)
*/
//Person 父类
public class Person {
protected String name = "Dog";
public void print(){
System.out.println("Person");
}
public Person() {
System.out.println("父类Person被调用");
}
public Person(String name) {
this.name = name;
}
}
//子类 继承 父类 Person
//父类中 只有 public 修饰的属性才可以被直接调用
//如果使用 private 修饰的属性则必须使用 get 和 set 方法调用
//private 修饰的方法无法被继承
public class Student extends Person{
private String name = "Cat";
public Student() {
//隐藏代码 调用的父类构造器的无参方法
//调用父类构造器 super必须写在第一行
//子类构造器调用 this也必须要写在第一行
super();//this();
System.out.println("子类Student被调用");
}
public Student(String name) {
this.name = name;
}
public void print(){
System.out.println("Student");
}
public void test01(){
System.out.println(name);//Cat
System.out.println(this.name);//Cat
System.out.println(super.name);//Dog
}
public void test02(){
print();//Student
this.print();//Student
super.print();//Student
}
}
super注意点:
1.super调用父类的构造方法,必须在构造方法的第一个
2.super 必须只能出现在子类的方法或者构造方法中!
3.super和 this 不能同时调用构造方法
Vs this:
代表的对象不同:
this: 本身调用者这个对象
super:代表父类对象的应用
前提
this:没有继承也可以使用
super:只能在继承条件才可以使用构造方法
this():本类的构造
super():父类的构造
浙公网安备 33010602011771号