super用法

关键字super在继承中的用法

1 super()调用父类的构造方法

public class Super extends Father{
    public static void main(String args[]){
        Super s = new Super();
        Super ss = new Super(2);
    }
    public Super(){
        super(10);
        System.out.println("调用子类构造方法");
    }
    public Super(int i){
        System.out.println("?");//此处第一行隐藏了super();
    }

}
 class Father{
    int p;
    public Father(){
       
    }
    public Father(int p){
        System.out.println("调用父类中的有参构造方法");
    }
}

运行结果如下:
在这里插入图片描述
如果删掉public Father(){}那么此处将要报错,因为系统找不Father类的构造方法,

    public Super(int i){
        System.out.println("?");//此处第一行隐藏了super();
    }

在这里插入图片描述
另外在子类构造方法中不一定要继承父类的构造方法,那么就需要将this()放在子类构造方法的第一行,如果将代码改成如下:

    public Super(int i){
        this();
        System.out.println("?");//此处第一行隐藏了super();
    }

在这里插入图片描述
由上述结果可知this()代表调用本类构造方法,也可以在()加参数

2 用super 访问父类中的成员方法及变量

public class Super extends Father{
      String name;
      int age;
    public static void main(String args[]){
        Super s = new Super("dog",15,"tiger",20);
        System.out.println(s.name);
        System.out.println(s.age);
        s.output();
    }
    public Super(String name,int age,String name1 ,int age1){
    this.name = name;
    this.age = age;
    super.name = name1;
    super.age = age1;
    }
    public void output(){
        System.out.println(super.name);
        System.out.println(super.age);
        super.compare(this.name, this.age, super.name, super.age);

    }
 
    }


 class Father{
    String name;
    int  age;
    Father(){

    }
    public void compare(String name,int age,String name1,int age1){
        System.out.println(name+"的年龄比"+name1+(age1>age?'小':'大'));
    }
      
    }

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值