JAVA—super关键字

JAVA—super关键字

1.调用父类构造方法

2.调用父类普通方法

3.调用父类属性---------------一般没有用因为属性会用private封装起来

###super调用父类构造方法

调用父类无参构造方法 语法super();

调用无参构造父类不存在 语法 super(参数);

调用父类无参构造

在调用父类无参构造时 super()关键字可以省略,系统会默认加上super(),这是构造方法可以使用this();

eg…1

class Person{
    private String name;
    private int age;
    public Person(){
		System.out.println("1.调用父类的构造方法");
    }
}
class Student extends Person{
    private String school;
    public Student(){
        super();//super()可以省略
        System.out.println("2.子类的无参构造");
    }

    public Student(String school){
        this();
        this.school=school;
    }
}
public class Day11{
    public static void main(String[] args){
        Student stu1=new Student("仙仙大");
    }
}
父类无参构造不存在

1.在对象实例化时,如果父类没有无参构造,则子类在构造方法第一句一定要加上 super(参数),否则会报错

这时,由于this() 和 super() 都要放在构造方法的第一句,所以不能同时出现;

eg…2父类无参构造不存在

class Person{
    private String name;
    private int age;
    public Person(String name ,int age){
        System.out.println("调用了构造方法");
        this.name=name;
        this.age=age;
    }
    public void print(){
        System.out.println("name "+this.name+" "+"age"+age);
    }
}
class Student extends Person{
    private String school;
    public Student(String name,int age,String school){
       super(name,age);
        this.school=school;
    }
    public void print(){//方法覆写
        System.out.println(" school "+school);
        super.print();//super调用父类普通方法
        
    }
}
public class Day11{
    public static void main(String[] args){
        Student stu1=new Student("战三",20,"仙学");
        stu1.print();
    }
}

###调用父类普通方法

1.语法: super.方法名()

2.可以放在方法内的任何位置

例子如上 eg…2

调用父类属性

super.属性名-----------一般没有用因为属性会用private封装起来
只能用 super.getter() 得到父类的属性, 总而言之,父类的域如果用private封装起来,是不能用super调用的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值