小白学java第二十七日:super关键词
作者:互联网
Super详解
Super关键词
- super学习时要与this区别开更好理解
- 在子类内部调用父类的属性和方法是通过super关键词来实现的!
//子类
package com.yuecheng.oop.Demo05;
//学生也是人(子类,派生类): 学生 is 人;
//子类继承父类,就会继承父类所有的方法
//注意:private(私有方法或属性) 私有的东西是无法继承的
public class Student extends Person{
//快捷键ctrl + h 打开树
public Student() {
// 这里隐藏了代码,调用了父类的无参构造
super();//调用父类构造器必须在子类的第一行
//上方的代码是默认的不写也行,这里只是知道原理
System.out.println("子类的无参构造执行了");
}
private String name = "婉茹";
public void print(){
System.out.println("Student");
}
public void test1( ){
print();//输出Student
this.print();//Student
super.print();//Person
}
public void test(String name){
System.out.println(name);//输出李白
System.out.println(this.name);//婉茹
System.out.println(super.name);//玥骋
}
}
package com.yuecheng.oop.Demo05;
//父类
public class Person {
public Person() {
System.out.println("父类Person无参构造执行了");
}
protected String name="玥骋";
public void print(){
System.out.println("Person");
}
}
package com.yuecheng.oop;
import com.yuecheng.oop.Demo05.Student;
public class Application {
public static void main(String[] args) {
Student student = new Student();
//student.test("李白");
student.test1();
}
}
注意点
- 父类中私有的部分无法通过 super继承
- super调用父类的构造方法,必须在构造方法的第一个。
- super必须也只能出现在子类的方法或者构造方法中。
- super和this 不能同时调用构造方法。
VS this
- 代表的对象不同:
- this:本身调用这这个对象。
- super:代表父类对象的引用。
- 前提
- this:没有呀继承也可以使用。
- super:只能在继承条件时才可以使用。
- 构造方法
- this ()调用的 是本类的构造。
- super(0调用的是父类的构造。
标签:java,子类,小白学,Student,println,父类,super,public 来源: https://blog.csdn.net/weixin_50659410/article/details/116614192