java--继承、super与this的区别

继承

  说到继承就想到了我们常说的子承父业,java中的继承(extends)也就是运用了这种思想,这样可以减少代码的重复率以及方便维护。

在这里插入图片描述

super与this的区别

superthis
父类对象的引用本类对象的引用
super.成员变量(或成员方法)

调用父类成员变量(或成员方法)

this.成员变量(或成员方法)

调用本类成员变量(或成员方法)

super(...)

调用父类构造方法

this(...)

调用本类构造方法

final、private关键字

finalprivate
被修饰的类不能被继承被修饰的方法不能被继承
被修饰的方法不能被继承
被修饰的变量赋值完后,不能被重新赋值被修饰的变量不能被继承

代码演示

父类
public class Extend{
    public Extend() {
        System.out.println("我是父类构造方法");
    }
    public void show(){
        System.out.println("我是父类show方法");
    }
    final int i=100;
    String x="我是父类常量";
    private String p="我是父类私有变量";
    private void my(){
        System.out.println("我是父类私有方法");
    }
}

子类

public class Extend2 extends Extend{
    public Extend2() {
       // super();系统隐藏的,你也可以写出来,这就是为什么父类构造函数会先执行的原因
        System.out.println("我是子类构造方法");
    }
    @Override
    public void show() {
        System.out.println("我是子类重写的show方法");
    }
}

测试类

public class Text {
    public static void main(String[] args) {
        Extend2 e=new Extend2();//创建Extend对象e
        System.out.println(e.x);
        System.out.println(e.i);
       // System.out.println(e.p);这句话会出错
        e.show();
      //  e.my();这句话会出错
    }
}

结果

我是父类构造方法
我是子类构造方法
我是父类常量
100
我是子类重写的show方法

  通过结果可以看出实例化子类时,回会先对父类构造函数进行实例化,其次是子类构造函数,重写过后的函数,结果也会是重写的内容,常量也被继承下来了,但是私有方法变量却不能被调用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值