Super类

news/2025/2/8 0:43:06/

Super

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

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

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

  4. super和this代表的对象不同

    • this:本身调用者这个对象
    • super:代表父类对象的引用

    super和this的前提不同

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

    super和this的构造方法不同

    • this( ); 本类的构造
    • super( ); 父类的构造

(1)子类引用父类protected的属性

package Demo05;//父类:Person类
public class Person {protected String name = "小陆同学";
}
package Demo05;//子类:Student 是 父类Person的拓展
public class Student extends Person{protected String name = "xiaolutongxue";public void test(String name){System.out.println(name); //输出传递的参数的值System.out.println(this.name); //Student类(子类)的nameSystem.out.println(super.name); //Person类(父类)的name}
}
package Demo05;public class Application {public static void main(String[] args) {Student student = new Student();student.test("小陆");}
}

运行结果

请添加图片描述

(2)子类调用父类的一些方法

package Demo05;//父类:Person类
public class Person {public void print (){System.out.println("Person");}
}
package Demo05;public class Student extends Person{public void print(){System.out.println("Student");}public void test1(){print(); //调用Student类的printthis.print(); //调用Student类的printsuper.print(); //调用Person类的print}
}
package Demo05;public class Application {public static void main(String[] args) {student.test1();}
}

运行结果

请添加图片描述

(3)私有的属性无法被继承

请添加图片描述

请添加图片描述

(4)子类默认调用父类的无参构造

package Demo05;//父类:Person类
public class Person {public Person() {System.out.println("Person无参执行");}
}
package Demo05;//子类
public class Student extends Person{public Student() {//隐藏代码:调用了父类的无参构造super();System.out.println("Student无参执行");}
}

运行结果

请添加图片描述

(5)super( ); 调用父类构造器必须放在第一行

请添加图片描述

请添加图片描述

(6)this( ); 调用子类构造器也必须放在第一行

所以super( ); 和this( );不能同时调用构造方法

请添加图片描述
请添加图片描述

(7)只要重写了有参构造就得把无参构造加上去

父类
请添加图片描述
子类请添加图片描述

请添加图片描述

那非要用有参构造,那子类就调用父类的有参构造就好了

请添加图片描述


http://www.ppmy.cn/news/369205.html

相关文章

this与super

区别thissuper访问属性this.属性名。只能访问当前对象所拥有的属性(包括继承来的属性,如果继承的属性名和子类对象相同,若不指定则调用子类的,调用父类的需要显示指定:super.属性名)super.属性名。可以访问父类非私有的属性访问方…

super详解

1、super是一个关键字,全部小写。 2、super和this对比着学习。 this: this能出现在实例方法和构造方法中。 this的语法是: "this."、 "this()" this不能使用在静态方法中。 this.大部分情况下是可以省略的。 this.什么时候不能省略呢?在区分局…

super的详解

为什么需要学习super? 能够帮助子类 初始化 父类继承下来的成员,从而 简 化 代 码 \color{red}{简化代码} 简化代码 super的定义: 与this概念区分 this代表当前对象,创建任何一个对象,都会创建一个this引用和该对象指向同一个堆区的空间, t h i s 就 是 一 个 地 址 \colo…

super()

目录 1.super()的使用实例 一一一子类重写父类的方法 2.super()的使用实例 一一一子类重写父类的变量 3.super()的使用实例 一一一在子类的构造方法中 4.关于构造方法中super() 第一种情况:编译不通过 第二种情况:编译不通过 第三种情况:成功…

使用super_pi测试CPU问题

项目场景: 对服务器进行性能测试,服务器系统:CentOS Linux release 7.0.1406 其中CPU测试使用super PI 问题描述: 下载superpi:wget http://superpi.ilbello.com/pi/super_pi.tar.bz2 解压后执行显示段错误 解决过…

也谈圆周率计算

圆周率计算历史 [1] [2] [3] [4]给出详尽的关于圆周率p计算的历史。我们这里仅给出几个有代表性的事件。 1.1第一个将p计算到小数点后2位数字的是古希腊数学家阿基米德(Archimedes),阿基米德是有史以来最伟大的三个数学家之一,另外两个是牛顿和高斯。 1…

CPU性能测试工具之Super PI

Super π(Pi)是Windows底下很受欢迎的测试CPU的工具,常用于硬件发烧友中对超频后的CPU进行压力测试。因其只用到基础的浮点运算,而不涉及其他的系统库环境,所以,很适合用于排查CPU物理问题。而基于Linux环境,同样也有Super PI for linux套件。当系统出现不明原因的死机、…

Windows/Linux搭建Stable Diffusion WebUI

什么是Stable Diffusion WebUI?能用来干嘛? Stable Diffusion WebUI(以下简称SD)是一个基于Gradio库的Stable Diffusion的浏览器界面,可以方便地配置和生成AI绘画作品,并且进行各种精细地配置。Stable Dif…