Java教程

java 中super的使用

本文主要是介绍java 中super的使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1,新建Application类,作为程序的入口

package oop.demo05;

//继承
public class Application {
    public static void main(String[] args) {

        /*
        先执行 父类的无参、在执行了类的无参
        Person 无参执行了
        Student 无参执行了
         */

        Student s1 = new Student();
        s1.say(); //说了一句话!!
//        System.out.println(s1.money);//1000000000 加了私有 修饰后,这个语句报错

        System.out.println("s1.getMoney():" + s1.getMoney()); //s1.getMoney():1000000000

        Student s2 = new Student();
        s2.Test("向向");

        s2.Test2();
    }
}

2,新建Person类

package oop.demo05;
/*
继承
 */
public class Person {
//    无参构造
    public Person() {
        System.out.println("Person 无参执行了");
    }

    public void  say(){
        System.out.println("说了一句话!!");
    }

    public int getMoney() {
        return money;
    }

    public void setMoney(int money) {
        this.money = money;
    }

    private   int money=10_0000_0000;

    /*
    public 公共的
    private 私有的
    default 默认的
    protected 受保护的
     */


    protected  String name="小小向";

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

    //私有和不能被继承
    private void  print2(){
        System.out.println("Person");
    }

}

3,新建Student类

package oop.demo05;

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

    private String name="小玉";

    public  void Test(String name){
        System.out.println("name:"+name);//向向
        System.out.println("this.name:"+this.name);//小玉
        System.out.println("super.name:"+super.name); // 小小向 ------------调父类;
    }

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

    public  void  Test2(){
        print();//Student
        this.print();//Student
        super.print();//Person

//        super.print2(); //不能调用,私有的
    }


}

4,新建Teacher类

package oop.demo05;

public class Teacher extends  Person{
}

5,super使用

## super注意点
    1,super调用的是父类的构造方法,必须在构造方法的第一个
    2,super必须只能出现在子类的方法或者构造方法中
    2,super和this不能同时调用构造方法

##vs this:
    代表的对象不同:
        this 本身这调用者是这个对象
        super 代表父类对象的引用
    前提
        this 没有继承也可以使用
        super 只有在继承条件下才可以使用
    构造方法
        this() 调用的是本类的构造
        super() 调用的是父类的构造

6,运行结果

这篇关于java 中super的使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!