父类中的设置器,带有一些没有参数的子类

戴蒙

我想知道如果您为某个参数创建一个带有空 setter 方法的父类,然后创建一些扩展该类的类,但并非所有类都具有该参数,会发生什么情况。在存在参数的类中调用 set 方法时,它会设置参数。而在参数不存在的类中,什么也不会发生,例如:

class Parent{
    void setParam(String param){};
}

class A extends Parent{
    String param;
    public void setParam(String param){
        this.param = param;
    }
}

class B extends Parent{
    String otherParam;
    public void setOtherParam(String param){
        this.otherParam = param;
    }
}

因此,如果我们创建类 A,将其转换为 Parent,然后 try setParam(),该属性param将被设置。

Parent parent = new A();
parent.setParam("PARAM");

A{param='PARAM'}

如果我们对 B 类做同样的事情并尝试setParam()什么都不会发生。

有人可以解释“幕后”发生的事情吗?我希望得到一个异常,因为我试图设置一个不存在的参数。

14sxlin

A 类重写了setParamParent 类的方法。即使您将 A 实例分配为 Parent 类,调用 a.setParam() 仍然表现为子类 A。这就是所谓的“子类多态性”。

B 类不会覆盖任何父级。所以 b.setParam() 只是调用 b 的父级的 setParam 方法,什么也没发生。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有一种特定的方式给予一定的子类的父类的一些功能?

带有一些参数的滑轨

如何使用MSVC2015将带有一些自变量的参数包装器放置到容器中?

如何对构造函数带有一些参数的类的方法进行单元测试?

带有一些参数的功能指针

使用带有一些参数的匿名函数

匿名方法并带有一些常量参数

如何获取URL(带有一些参数)?

Spring data mongo 没有绑定一些参数

FFmpeg:连接多个视频,一些带有音频,有些没有

有没有一种方法可以调用父类构造函数,该构造函数从子类中获取参数,而该子类没有自己的构造函数?

没有父类的 CSS 子类

将带有一些设置参数的read.csv分配给名称,以便将其传递给函数

.NET中是否有一些流“管道”类?

一些元素在 HTML 中没有对齐

SSN 本体 RDF 中似乎故意缺少一些子类。有没有办法导入一个完整的SSN本体?

如何从<span>中刮取一些没有唯一类标识符的文本?

如何查找带有一些没有重复值的键的文档?

参数大小可变的函数:如何有条件地设置一些参数?

Android:我在操作栏中设置了一些图标,但它们没有显示在我的设备上

有没有办法在父类中获得子类的名称?

有没有办法让子类根据python中的输入从不同的父类继承?

有没有办法在父类中获取子类文件路径?

在JavaScript中,是什么定义没有默认参数其他参数之前,一些参数使用默认参数的函数的意义呢?

Twitter引导程序3中的底部菜单带有一些全角容器和一些普通容器

模拟类方法,仍然运行带有一些包装代码的原始方法

有没有办法在数据库(mysql)中存储带有一些数学公式的文本?

继承一些,但不是从父类的构造函数继承所有参数?蟒蛇

全局分布拟合共享一些参数,而没有在python中指定bin大小