首页 > 其他分享 >Super详解

Super详解

时间:2024-01-13 22:36:59浏览次数:15  
标签:无参 Super 详解 Student 子类 父类 super public

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();
  }
}
 

标签:无参,Super,详解,Student,子类,父类,super,public
From: https://www.cnblogs.com/poiuyjoey/p/17963120

相关文章

  • static关键字详解
    注意通过final修饰的类,它就不能被继承,没有子类 举例Student.score会报错 代码//Java-零基础学习/src/oop/demo07/Studentpackageoop.demo07;​importoop.demo06.Person;​//staticpublicclassStudentextendsPerson{​  privatestaticintage;//静态的变......
  • 构造器详解
    创建与初始化对象类中的构造器也称为构造方法,是及逆行创建对象的时候必须要调用的。并且构造器有以下两个特点:必须和类的名字相同必须没有返回类型,也不能写void构造器必须要掌握查看class文件找到ProjectStructure 选择Modules 点击AddContentRoot 选......
  • Eloquent 模型使用详解 Has One Through 远程一对一
    远程一对一也好,经过型,穿过型一对一也好,都能表示这种模型的关联方式:一种非直接的关系定义这里使用官方的例子:......
  • 从零开始的源码搭建:详解连锁餐饮行业中的点餐小程序开发
    时下,点餐小程序成为了许多餐饮企业引入的一种创新工具,不仅方便了顾客的用餐体验,同时也提高了餐厅的运营效率。本文将详细探讨如何从零开始搭建一个源码,并深入解析连锁餐饮行业中的点餐小程序开发过程。 一、需求分析与规划在开始源码搭建之前,首先需要明确点餐小程序的具体需求。这......
  • Go标准库:Go template用法详解
    本文只介绍template的语法和用法,关于template包的函数、方法、template的结构和原理,见:深入剖析Gotemplate。入门示例以下为test.html文件的内容,里面使用了一个template语法{{.}}。<!DOCTYPEhtml><html> <head> <metahttp-equiv="Content-Type"content="text/html;char......
  • 详解Linuxrc、rcS、rc.local、Profile
    /Linuxrc执行init进程初始化文件。主要工作是把已安装根文件系统中的/etc安装为ramfs,并拷贝/mnt/etc/目录下所有文件到/etc,这里存放系统启动后的许多特殊文件;接着Linuxrc重新构建文件分配表inittab;之后执行系统初始化进程/sbin/init。/mnt/etc/init.d/rcS完成各个文件系统的......
  • 详解Java信号量-Semaphore
    第1章:引言大家好,我是小黑。今天,咱们一起来深入探讨一下Semaphore。在Java中,正确地管理并发是一件既挑战又有趣的事情。当谈到并发控制,大家可能首先想到的是synchronized关键字或者是ReentrantLock。但其实,Java还提供了一个非常强大的工具,就是Semaphore。Semaphore,直译过来就是......
  • Java日期时间处理详解
    Java中SimpleDateFormat、LocalDateTime和DateTimeFormatter的区别及使用在Java的世界里,处理日期和时间是常见的任务。尤其在Java8之前,SimpleDateFormat是处理日期和时间的主要方式。然而,Java8引入了新的日期时间API,其中LocalDateTime和DateTimeFormatter成为了新的选择。本文......
  • 详解Java多线程之循环栅栏技术CyclicBarrier
    第1章:引言大家好,我是小黑,工作中,咱们经常会遇到需要多个线程协同工作的情况。CyclicBarrier,直译过来就是“循环屏障”。它是Java中用于管理一组线程,并让它们在某个点上同步的工具。简单来说,咱们可以把一群线程想象成一队马拉雪橇的驯鹿,CyclicBarrier就像是一个指定的集合点,所有驯......
  • 【转载】淘宝爬虫sign、token详解
    【转载】淘宝爬虫sign、token详解淘宝对于h5的访问采用了和客户端不同的方式,由于在h5的js代码中保存appsercret具有较高的风险,mtop采用了随机分配令牌的方式,为每个访问端分配一个token,保存在用户的cookie中,通过cookie带回服务端分配的token,客户端利用分配的token对请求的URL参......