Java基础: Super () this() 您所在的位置:网站首页 在java中super代表什么 Java基础: Super () this()

Java基础: Super () this()

2023-12-17 20:06| 来源: 网络整理| 查看: 265

目录

1.子类调用父类属性

 2.子类调用父类方法

3.构造器

4.父类定义有参构造,但未显示定义无参构造会导致程序报错(封装错误)

总结:

1.子类调用父类属性

父类Person

public class Person { protected String name = "父亲"; }

子类Student

public class Student extends Person { private String name = "儿子"; public void test(String name){ System.out.println(name);//形参 System.out.println(this.name);//自定义实参 System.out.println(super.name);//父类实参 } }

启动类Application

public class Application { public static void main(String[] args) { Student student = new Student(); student.test("大儿子"); } }

执行结果

第一个输出是输出了传递的参数

第二个输出this.name输出的是当前类中的name参数

第三个输出super.name输出的是父类中的name参数

 2.子类调用父类方法

父类Person

public class Person { protected String name = "父亲"; public void print(){ System.out.println("这是一个父亲"); } }

子类Student

public class Student extends Person{ private String name = "儿子"; public void print(){ System.out.println("这是一个儿子"); } public void test1(){ print();//当前类的对象 this.print();//当前类的对象 super.print();//父类的对象 } }

启动类Application

public class Application { public static void main(String[] args) { Student student = new Student(); student.test1(); } }

输出内容

 前两个输出调用的都是当前类print()方法

第三个输出调用的是父类print()方法

注:私有(private)的方法无法被继承,如果父类的print()方法设置的是private(私有),那么子类就无法通过super.print()调用

3.构造器

父类Person无参构造

子类Student无参构造

Application执行类

 执行结果

调用的是子类Student,但是父类和子类的无参都执行了,说明还是有调用到父类。说明子类中存在隐藏代码。

super();   就是隐藏代码 。但super();调用父类的构造器必须要在子类构造器代码的第一行,不然就会报错。

4.父类定义有参构造,但未显示定义无参构造会导致程序报错(封装错误)

父类定义了有参构造,没有显示定义无参构造也同样会导致子类无参构造中的super();报错

 5.如果一定要调用父类的有参构造器

只要子类的super(name);调用的是有参就可以了

总结: super注意点: 1.super调用调用父类的构造方法,必须在构造方法中的第一行 2.super 必须只能出现在子类的方法或者构造方法中 3.super和this不能同时调用构造方法! super和this的区别: 1.代表的对象不同 this:本身调用者这个对象 super:代表父类对象的应用 2.前提: this:没有继承也可以使用 super:只能在继承条件下可以使用 3.构造方法: this();本类的构造 super();父类的构造 3.快捷键: 点击看源码(或可以查询到子类父类调用):ctrl+鼠标左键 搜索当前类中的关键字:ctrl+F 通过this和super关键字调用其他构造方法可以简化代码编写


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有