- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
情况:
class A {
private int prop = 0;
}
class B extends A {
private int extraProp;
B(int param){
extraProp = param
}
}
如您所见,唯一不同的是 B 引入了一个额外的属性。
我基本上希望能够将额外的属性添加到 A,同时将其转换为 B。
如果不手动将所有属性从 A 类复制到 B 是否可行?像这样
class B extends A {
private final int extraProp;
B(int param){
extraProp = param
}
static B from(A a, int param){
B b = new B(param);
b.prop = a.prop;
return b;
}
}
这里我基本上是在克隆类。是否可以使用 A 的实例并简单地添加新的 Prop ,所以我不必担心手动克隆
我知道只要让 A 上的额外属性是可选的,这可能是可能的,但我认为这不是一个好的解决方案。
A a = new A();
B atoB = (B /* WITH NEW PARAM */) A
最佳答案
Java 不允许您这样做,并且有充分的理由。 Java 的关键特性之一是其强大的静态类型系统。关于类定义的所有内容(字段、方法、可见性等)在编译时就已确定,之后无法更改。例如,当您创建一个类时
class A {
private int prop1;
private int prop2;
}
然后,无论何时您使用 new A()
创建一个实例,该实例都将完全根据您在代码中给出的规范构造,即它的类型为 A
并且具有恰好有两个私有(private)字段,prop1
和 prop2
,除此之外别无他物(当然 Object
中的属性除外)。如果你创建一个 B 类
class B extends A {
private int extraProp;
}
您可以使用 new B()
创建实例,这些实例具有 A 的属性和 B
的额外属性。但是即使 B
扩展了 A
,A
和 B
也是不同的类型。您不能将 A
的现有实例“扭曲”到类 B
的实例中。在像 JavaScript 这样具有可变原型(prototype)的语言中,这样的事情是可能的,但在类信息在编译时固定的 Java 中,这是不可能的。
您所能做的就是获取 A
的属性并创建具有相同属性的 B
的新实例。但实际上将现有对象的类更改为其子类之一是不可能的。
关于java - 将父类变形为子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52918457/
我正在尝试在我的网站上嵌入多个 .svg 文件。只要我使用 Chrome、Firefox 或我目前测试过的任何移动浏览器,一切似乎都运行良好。但是,有一个异常(exception):每当我在 Wind
我正在尝试在我的网站上嵌入多个 .svg 文件。只要我使用 Chrome、Firefox 或我目前测试过的任何移动浏览器,一切似乎都运行良好。但是,有一个异常(exception):每当我在 Wind
是否有某种方法(库或算法)可用于在 java.awt.Shape 或其路径迭代器的两个实例之间进行插值?例如,要在矩形和椭圆之间无缝过渡?或者更一般的 Path2D 情况。 最佳答案 SwingX 中
我试图在动态大小的视频上包含一个 Canvas 元素,该视频将异步加载。在 Canvas 上,用户将能够拖动矩形选择框并调整其大小。 在我的 JS 文件中,我有一个监听器监 window 口,并通过
Closed. This question needs to be more focused。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅关注editing this post一个问题。 去
有没有办法通过 GDAL(使用 Python API)使用移位向量来扭曲图像? 通过移位向量,我的意思是例如。包含以下列的 CSV(或 numpy)文件:starting_x,starting_y,t
我正在创建一个导航按钮。当用户按下它时,按钮的图像应该改变,反射(reflect)它的状态(例如菜单打开/关闭)。我决定为此做一个 morphing-liek 动画。可以用CoreAnimation来
我在 Pandas 中有以下示例数据框。如何获取每个 'Id' 的 'label_weight' 值的最大值并将相应的 'label' 列分配给该 'Id' 在新列 'assgined_label'
文本使我的框变形。 这是我的: This text is deforming the "leftOne" 还有 CSS: .leftOne { float: left;
HTML: Home Services About Us Contact Us CSS: ul { pa
我想在这里得到 openCV 爱好者的帮助。 我想知道关于如何变形 2 个面孔的方向(以及一些建议或代码段),以及一种比率,即第一个面孔的 10% 和第二个面孔的 90%。 我见过像 cvWarpAf
我已经搜索了很长时间,但还没有找到真正的答案,但是,也许我的眼睛上有西红柿,但是真的没有针对 python/MATLAB 的框架可以进行面部扭曲/开箱即用? 一个框架,我在其中放入两张带有特征点的图像
根据material.io float 操作按钮可以变身为操作菜单,如 this .有什么方法可以只使用 Material 库(没有第三方库)吗? 我试过了this库,但它会在菜单关闭后根据底部应用栏
这就是我想用我的 NSOpenGLView 做的事情。目前 NSOpenGLView 覆盖了窗口的整个区域,我想在 NSOpenGLView 顶部添加按钮、nsviews 和图像。我浏览了网页,发现
我正在遍历在 Controller 中定义的集合。 我正在使用基础轨道插件将其转变为轮播。 但是我的HTML被弄乱了,并且破坏了插件,因为它期望获得一定的输出。
我不知道如何使用 BufferedImage 使图像变形。有人能帮我吗 ?我绝对绝望了。感谢您的所有提示。对不起我的英语不好。 | |
这个问题的答案似乎相互矛盾,我很困惑在 Core Data 数据库中存储图像的最佳方式是什么。 This question说可变形,但是this question说要使用二进制数据。 如果我只是想把它
您好,我不确定如何处理有关表单的逻辑。所以,表格很大,我知道有 20 多个字段被认为是“不好的做法”,表格应该最少,但这就是客户想要的,所以不用争论,无论如何表格都会接受订单,但有不同的顺序类型(更具
我正在使用 animator() 在我的应用程序的帧( subview )之间横向滚动 NSScrollView。当动画发生并且我调整 NSWindow 的大小时,整个 NSView 会像这样扭曲:
仍在我的太空入侵者克隆上工作,我想在屏幕底部添加可破坏的基地: 我已经弄清楚如何通过让炸弹和盾牌相互接触来修改盾牌的外观,然后在 didBegincontact 中,从炸弹爆炸的 mask 和盾牌的当
我是一名优秀的程序员,十分优秀!