Super详解

super注意点

  1. super调用父类的构造方法,必须在构造方法的第一个

  2. super必须只能出现在子类的方法或者构造方法中!

  3. super和this不能同时调用构造方法!

Vs this

代表的对象不同:

  • this:本身调用者这个对象

  • super:代表父类对象的引用

前提:

  • this:没有继承也可以使用

  • super:只能在继承条件下才可以使用

构造方法

  • this():本类的构造

  • super():父类的构造!

举例

super()必须在第一行,否则会报错

 

this()也必须在第一行,否则会报错,因此不能和super()同时调用

 

this()写第一行,super()会报错

 

无参构造

 

写了有参构造,无参构造就没了

 

父类没有无参构造,子类里面没法调用super()

 

因此子类无参构造也会报错

 

因此父类必须加一个无参

 

如果父类想写有参构造,子类可以调用父类的有参构造,不写的话就默认调用无参构造

 

代码

//Java-零基础学习/src/oop/demo05/Student
package oop.demo05;

//Student is Person :派生类,子类
//子类继承了父类,就会拥有父类的全部方法!
public class Student extends Person {
   public Student() {
       //隐藏代码:调用了父类的无参构造

       super();//调用父类的构造器,必须要在子类的第一行
       System.out.println("Student无参执行了");
  }

   private String name = "qinjiang";

   public void print() {
       System.out.println("Student");
  }

   public void test1() {
       print();
       this.print();
       super.print();
  }

   public void test(String name) {
       System.out.println(name);//秦疆
       System.out.println(this.name);//qinjiang
       System.out.println(super.name);//kuangshen
  }
}

/*
public static void main(String[] args) {

       Student student = new Student();
       student.test("秦疆");
       student.test1();
   }
*/
//Java-零基础学习/src/oop/demo05/Teacher
package oop.demo05;

//在Java中,所有的类,都默认直接或者间接继承object
//Person 人:父类
public class Person {

   public Person() {
       System.out.println("Person无参执行了");
  }

   protected String name = "kuangshen";

   public void print() {
       System.out.println("Person");
  }
}
//Java-零基础学习/src/oop/Application
package oop;

import oop.demo05.Student;

//一个项目应该只存在一个main方法
public class Application {
   public static void main(String[] args) {

       Student student = new Student();
       student.test("秦疆");
       student.test1();
  }
}
 
posted @   poiuyjoey  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示