首页 > 编程语言 > 详细

Java:super

时间:2021-04-15 23:34:57      阅读:23      评论:0      收藏:0      [点我收藏+]
  • super的注意点
    • super必须只能出现在子类的方法或者构造方法中!
    • super()调用父类的构造方法,必须在子类构造方法的第一行
    • super()和this()不能同时调用构造方法!

  • this与super的不同

    代表的不同

    • this:当前类的

    • super:父类的

    前提

    • this:没有继承也可以用

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

    构造方法

    • this() 本类的构造方法
    • super() 父类的构造方法

package com.jiemyx.oop.demo06;

public class Person {

    //Person类的构造器(构造方法)
    public Person(){
        System.out.println("Person类的构造器(构造方法)");
    }

    protected String name = "人类";

    //如果是private私有的,在Student类中就无法使用super.print()
    public void print(){
        System.out.println("Person类中的print方法");
    }
}


package com.jiemyx.oop.demo06;

public class Student extends Person{

    //Student类的构造器(构造方法)
    public Student(){
        //隐藏代码:调用父类的无参数构造方法
        //super();

        //显示出来,调用父类的构造方法,必须在子类构造方法的第一行
        super();
        System.out.println("Student类的构造器(构造方法)");
    }

    private String name = "xiaoming";

    public void test(String name){
        System.out.println(name);
        System.out.println(this.name);
        System.out.println(super.name);
    }

    public void print(){
        System.out.println("Student类中的print方法");
    }

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


package com.jiemyx.oop.demo06;

public class Application {
    public static void main(String[] args) {
        //创建对象,并且调用构造器
        Student student = new Student();

        System.out.println("=========");

        student.test("小明");

        System.out.println();

        student.test1();
    }
}

运行结果:

Person类的构造器(构造方法)
Student类的构造器(构造方法)

=========
小明
xiaoming
人类

Student类中的print方法
Student类中的print方法
Person类中的print方法

Java:super

原文:https://www.cnblogs.com/Jiemyx/p/14664602.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!