继承

本文探讨了Java中子类实例化的细节,包括如何通过子类实例化父类并调用子类重写的方法,以及如何处理父类数组中添加子类对象的问题。

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

Java创建子类实例对象

Java里的子类创建实例时会自动调用父类的无参构造器。即便你使用的是子类的有参构造器。

Java中的初始化问题

Java中有一个叫做多态的特性,即父类可以调用子类重写的父类方法,其实现方式如下。

class Parent{
    public void test(){
        System.out.println("Father");
    }
}
class Child{
    public void test{
        System.out.println("child");
    }
    public void child(){
        System.out.println("这是子类独有的方法");
    }
    public static void main(String[]args){
        Parent p=new Child();
        p.test();//输出结果为child;
    }
}

父类数组中添加子类对象的问题

由上面例子可以得到通过用子类初始化父类可以使父类调用子类中重写的方法。但是需要注意的是用这种方法初始化的父类是无法调用子类独有的新方法的。
请看如下例子

Parent []p=new Parent[];
p[0]=new Child();
//p[0].child();编译器报错,父类不能调用子类独有的方法
((Child)p[0]).child();//将p[0]强制转型为子类就可以调用该方法

需要注意的是子类是无法强行转为父类的,强转的结果是编译器报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值