小白学java第二十七日:super关键词

Super详解

Super关键词

  • super学习时要与this区别开更好理解
  • 子类内部调用父类的属性和方法是通过super关键词来实现的!
//子类
package com.yuecheng.oop.Demo05;
//学生也是人(子类,派生类): 学生 is 人;

//子类继承父类,就会继承父类所有的方法
//注意:private(私有方法或属性) 私有的东西可以继承但子类无法访问
public class Student extends Person{
//快捷键ctrl + h 打开树


    public Student() {
        // 这里隐藏了代码,调用了父类的无参构造
        super();//调用父类构造器必须在子类的第一行
        //上方的代码是默认的不写也行,这里只是知道原理
        System.out.println("子类的无参构造执行了");
    }

    private String name = "婉茹";

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

    }

    public void test1( ){
        print();//输出Student
        this.print();//Student
        super.print();//Person

    }

    public void  test(String name){
        System.out.println(name);//输出李白
        System.out.println(this.name);//婉茹
        System.out.println(super.name);//玥骋
    }



}


package com.yuecheng.oop.Demo05;
//父类
public class Person {

    public Person() {
        System.out.println("父类Person无参构造执行了");
    }

    protected String name="玥骋";

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


}


package com.yuecheng.oop;

import com.yuecheng.oop.Demo05.Student;

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

        Student student = new Student();
        //student.test("李白");
        student.test1();

    }
}

注意点

  • 父类中私有的部分无法通过 super调用
  • super调用父类的构造方法,必须在构造方法的第一个。
  • super必须也只能出现在子类的方法或者构造方法中。
  • super和this 不能同时调用构造方法。

VS this

  • 代表的对象不同:
    • this:本身调用这这个对象。
    • super:代表父类对象的引用。
  • 前提
    • this:没有继承也可以使用。
    • super:只能在继承条件时才可以使用。
  • 构造方法
    • this ()调用的 是本类的构造。
    • super(0调用的是父类的构造。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玥骋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值