Java中子类继承父类的方法的返回值

在Java中,子类可以继承父类的方法,但不能更改这些方法的返回类型。如果子类想要重写(override)父类的方法,返回类型必须与父类方法的返回类型相同,或者子类的返回类型应为父类返回类型的子类。

class Parent {
    Number getNumber() {
        return new Integer(10);
    }
}
 
class Child extends Parent {
    @Override
    Integer getNumber() {
        return 10;
    }
}

在这个例子中,Parent 类有一个返回类型为 Number 的方法 getNumber,而 Child 类重写了这个方法,将返回类型改为了 Integer,这是允许的,因为 Integer 是 Number 的子类。

如果尝试改变返回类型以产生不兼容的类型,如下所示:

class Child extends Parent {
    @Override
    String getNumber() {
        return "10";
    }
}
这将会导致编译错误,因为 String和 Integer都不是 Number的子类。

继承
继承是多态的前提

共性抽取

特征

        单继承,一个子类只能有一个父类
        多层继承,最顶层上类——Object
        一个父类可以有多个子类

        子类可以拥有父类的内容,
        子类可以拥有自己专有的内容


父类就是普通类;子类:class xxx extends 父类

        创建父类对象,只能使用父类成员

        创建子类对象,可以使用父类子类成员

        子类可以复写父类方法

        父类子类成员变量重名后,创建子类对象时,

                直接使用:子类对象.成员变量:左边是谁,就用谁的,没有向上寻找

                间接使用:通过成员方法调用成员变量:本类中有成员,使用本类,没有向上找

        三种变量在子类中

                局部:直接用
                本类:this
                父类:super
        构造方法中,子类构造共默认有一个super()

        super()必须在构造的第一句,且只有一个

重写
继承关系中,方法名一样,参数列表一样返回值也有要求

        创建子类对象,使用子类的方法
        @override:检测正确复写
        子类方法返回值类型必要小于等于父类方法返回值类型
        子类方法权限必要大于等于父类方法权限
super
        在子类成员方法中,访问父类成员变量
        在子类成员方法中,访问父类成员方法
        子类构造方法中,访问父类构造方法
this
        本类成员方法中,访问本类成员变量
        成员方法中,访问另个成员方法
        本类构造方法中,访问另个构造方法——this(xxx),也是第一句。所以super与this不可以同时出现在构造中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值