super 和 this 的使用

super 和 this 的使用

public class father{	//父类
    protected String name = "小明";
    public father(){
        super();//他的父类是Object类
    }
    public father(String name){
        this.name = name;
    }
    private void hello(){
    	System.out.println("hello");
    }
}
public class son extends father{	//子类
    public String name = "李华";
    
    public son(){
        super();//他的父类是father,默认代码,不写也不会报错
    }
    
    public son(String name){
        this.name = name;
    }
    
    public void test2(){
		this.test();
		//super.hello();//会报错,不能使用父类中private的属性或方法
	}
    
    public void test(String name){
        System.out.print(name);
        System.out.print(this.name);
        System.out.print(super.name);
    }
}
public static void main(String[] args){
    Son son = new son();
    son.test("海王");
}

输出:

海王

李华

小明

结论:

子类通过继承父类,可以使用父类的相关属性和方法

值得注意的是:

  • 子类不能继承父类private的属性或者方法;
  • 使用super()调用父类的构造方法时,必须在构造方法的第一行
  • super必须出现在子类的方法或构造方法中(注:构造参数中默认隐藏代码super();,当父类只有有参构造方法、没有无参构造方法的时候,子类调用super()的时候要加上参数才不报错,所以父类中写完有参构造后,最好加上无参构造,或者使用@lambok注解);
  • this:没有继承也可以使用,指代本类的属性或方法;
  • super:代表父类对象的应用,只有在继承下才可以使用;
  • super 和 this 不用同时调用构造方法;

总结不对或者不足的地方,欢迎各位大牛指正。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值