overriding相关内容
问题大纲 我正在对当前项目基础的更好部分进行泛化,并且我有一个想法,我决定测试关于覆盖抽象方法的内容.这是我在 Java 中的测试类: 公共抽象类 Base {public abstract 测试();} 第一次实现: public class Inheritor extends Base {@覆盖公共继承者测试(){返回空;}} 第二次实施: pu
..
所以我收到错误 Class is not abstract 并且不会覆盖 ActionListener 中的抽象方法 actionPerformed(ActionEvent) 我知道这个错误的根源,但让我困惑的是我有那个方法. public static ActionListener taskPerformer = new ActionListener(){public void acti
..
我觉得它很奇怪,想知道它是否是经常使用的东西.什么时候有用? 公共接口InterA {对象 getInfo() 抛出 Exception1;}公共接口 InterB {公共默认整数 getInfo(Object s) {return 67;}}公共接口 InterC 扩展了 InterA、InterB {@Override public abstract Integer getInfo(Obje
..
我有四门课.请求、DerivedRequest、处理程序、DerivedHandler.Handler 类有一个属性,声明如下: public abstract Request request { get;放;} DerivedHandler 需要覆盖这个属性,以便它返回 DerivedRequest: public override DerivedRequest request { get
..
我有一个带有以下(为简洁起见进行了修剪)声明的基类: 公共抽象类 MyBaseClass{公共 int RecordId { 获取;私人订制;}公共字符串对象名称 { 获取;放;}公共抽象字符串状态 { 获取;放;}公共 GetMyObject(int id){MyObject myObject = context.GetObjectById(id);this.RecordId = myObje
..
我一直在做一个作业,它涉及一个代表通用动物的抽象类,还有猫、狗、爬行动物等的子类.超类具有抽象方法每个子类实际上都没有使用这些方法. 例如,有狗和猫使用的品种和性别的访问器和变异器,而不是爬行动物类.我个人认为这是一个奇怪的设置,但这是作业所要求的. 一开始我尝试忽略特定子类中未使用的抽象方法,但我很快发现这会导致错误,因为抽象方法没有被覆盖.我所要做的就是将其放入适当的方法中进行修复...
..
公共抽象类A{公共抽象无效过程();}公共抽象类 B : A{公共抽象覆盖 void Process();}公开课 C : B{公共覆盖无效进程(){Console.WriteLine("abc");}} 此代码引发编译错误:'B' 未实现继承的抽象成员 'A.Process()'. 有没有办法做到这一点? 解决方案 只需在类 B 中完全省略该方法. B 无论如何从 A 继承它,并
..
抽象公共类车{抽象无效驱动器();} 与上面的代码片段一样,Java 中抽象方法的目的究竟是什么?据我所知,根据定义,他们不允许有尸体. 解决方案 当你让事物实现同一个抽象类时,你是说,这些事物在高层次上是相似的,但它们在具体的做法上有所不同事物.抽象方法就是你怎么说,“这是扩展这个类的所有事情都必须做的事情,但他们每个人都可以指定他们将如何做."
..
在 Java 中重写非虚方法时,推荐使用 @Override 批注,但如果我实现抽象方法怎么办?那么我也应该使用 @Override 吗? 解决方案 在这种情况下,我倾向于使用 @Override,以便在超类更改时在子类中标记该方法(完全删除该方法,或更改其签名等). 唯一真正的区别是,如果没有注解,如果超类/接口中的方法被更改或删除,有问题的实现只是成为该类的“正常"方法.因此,如
..
class Base {}抽象类A{抽象公共列表项目{得到;放;}}派生类:基{}B级:A{私人列表项目;公共覆盖列表项目{得到{退换货品;}放{项目 = 价值;}}} 编译器说 B.Items 必须是 Base 元素列表“以匹配覆盖的成员"A.Items.我怎样才能做到这一点? 解决方案 您最初尝试完成的事情是不可能的 - .NET 不支持方法重载的 co(
..
我试图了解 Java 如何处理当具体类从不同类/接口继承(抽象或具体)具有相同名称的方法时出现的歧义情况. 我一直无法找到一般规则,这就是为什么我决定花一些时间通过使用实际方法来解决这个问题. 我考虑了 8 种不同的情况,结合起来 抽象方法 非抽象方法 抽象类 界面 导致这个方案: +-------------------------+|界面 |+--------
..
我想知道是否有任何方法可以执行以下操作.我有一个抽象类 Shape 及其所有不同的子类,我想覆盖 clone 方法.我想要在该方法中做的就是从当前的 toString() 创建一个新的 Shape.显然我不能做以下事情,因为 Shape 是抽象的.有没有另一种方法可以做到这一点,因为在每个子类中覆盖克隆只是为了简单的名称更改似乎没有用. 公共抽象类Shape {公共形状(字符串 str){//从
..
我有一个抽象类应该实现一个公共字段,这个字段是一个接口或另一个抽象类. 像这样: 公共抽象类GenericContainer {公共 GenericChild 孩子;}公共抽象类 GenericChild {公共 int prop1=1;}公共抽象类 SpecialChild 扩展 GenericChild {公共 int prop1=2;} 现在我有另一个专门的类容器: public
..
我在使用 Java 时遇到编译时错误: MyClass 不是抽象的,不会覆盖抽象方法onClassicControllerRemovedEvent(wiiusej.wiiusejevents.wiiuseapievents.ClassicControllerRemovedEvent)在 wiiusejevents.utils.WiimoteListener 中) 这是课程: import w
..
出于好奇,我尝试覆盖基类中的抽象方法,并对实现抽象进行方法.如下: 公共抽象类 FirstAbstract{公共抽象无效 SomeMethod();}公共抽象类 SecondAbstract : FirstAbstract{公共抽象覆盖 void SomeMethod();//??这有什么意义?无论如何都没有实现会强制派生类实现抽象方法?} 想知道为什么 C# 编译器允许编写“抽象覆盖".不是
..
我想知道: 为什么不能在 Java 中覆盖静态方法? 静态方法可以在 Java 中重载吗? 解决方案 静态方法不能被完全覆盖,但可以隐藏父静态方法 实际上,这意味着编译器将在编译时决定执行哪个方法,而不是在运行时决定执行哪个方法,就像重写的实例方法一样. 一个简洁的例子看看这里. 和这个是解释覆盖实例方法和隐藏类(静态)方法. 覆盖:Java 中的覆盖仅意味
..
我有两个班级: 公共类 A {公共对象方法(){...}}公共类 B 扩展 A {@覆盖公共对象方法(){...}} 我有一个 B 的实例.如何从 b 调用 A.method()?基本上和从 B 调用 super.method() 的效果一样. B b = new B();类superclass = b.getClass().getSuperclass();Method method = s
..
System.out.println() 和 toString() 在 Java 中有什么联系?例如: 公共类 A {字符串 x = "abc";公共字符串 toString() {返回 x;}}公共类 ADemo {公共静态无效主(字符串 [] args){A obj = new A();System.out.println(obj);}} 如果主类运行,它给出的输出为 "abc".当我删除
..
我对覆盖与隐藏在 Java 中的区别感到困惑.任何人都可以提供有关这些差异的更多详细信息吗?我阅读了 Java 教程,但示例代码仍然让我感到困惑. 为了更清楚,我理解覆盖很好.我的问题是我看不出隐藏有什么不同,除了一个是在实例级别而另一个在类级别. 看Java教程代码: 公共类动物{公共静态无效 testClassMethod() {System.out.println("Class
..
这里是工作的java代码 class 杯{公共字符串 sayColor() {返回“我有一种颜色.";}}TCup 类扩展 Cup{公共字符串 sayColor(){System.out.println(super.getClass().getName());return super.sayColor()+"颜色是绿色.";}}类 MyTCup 扩展了 TCup {公共字符串 sayColor(
..