java继承:父类对象可以被子类赋值,反之不行哦

本文通过Java代码示例介绍了父类与子类之间的方法重写机制。演示了如何通过子类对象调用被重写的方法,并解释了如何使用显式类型转换来调用子类特有的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接看例子、注释和输出吧

class A {
    public void func1() {
        System.out.println("A func1 is calling");
    }
    public void func2() {
        func1();
    }
}

class B extends A {
    public void func1() {
        System.out.println("B func1 is calling");
    }
    public void func3() {
        System.out.println("B func3 is calling");
    }
}

class C {
    public static void main(String[] args) {
        // 一个父类对象被子类赋值了
        A a = new B();
        //func1被重载
        a.func1();
        //func1被重载
        a.func2();
        //父类被子类赋值不能用子类方法
        //a.func3();
        //需要显式转换变成B才可以
        ((B) a).func3();
        //子类不能被父类赋值
        //B b = new A();

    }
}

输出:
在这里插入图片描述

核心:
父类可以被子类赋值
子类不可以被父类赋值
继承里面的虚函数重载
然后需要显式转换才可调用该子类方法

ps
如果父类强制类型转换成子类,编译会通过
但是调用方法时候会抛出异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白速龙王的回眸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值