overriding相关内容
假设我有两个 C++ 类: A 类{民众:A() { fn();}虚拟无效 fn() { _n = 1;}int getn() { 返回 _n;}受保护:国际_n;};B类:公共A{民众:B() : A() {}虚拟无效 fn() { _n = 2;}}; 如果我写如下代码: int main(){乙乙;int n = b.getn();} 人们可能期望 n 设置为 2. 结果 n
..
考虑代码: #include 类基{民众:虚空 gogo(int a){printf(" Base :: gogo (int) \n");};虚拟无效 gogo(int* a){printf(" Base :: gogo (int*) \n");};};派生类:公共基础{民众:虚拟无效 gogo(int* a){printf(" 派生 :: gogo (int*) \n");};};int ma
..
在基类型“virtual"中声明一个方法然后在子类型中使用“override"关键字覆盖它与简单地使用有什么区别在子类型中声明匹配方法时的“new"关键字? 解决方案 “new"关键字不会覆盖,它表示一个与基类方法无关的新方法. 公共类Foo{public bool DoSomething() { return false;}}公共类酒吧:Foo{public new bool DoSo
..
想知道以下之间有什么区别: 案例 1:基类 public void DoIt(); 案例一:继承类 public new void DoIt(); 案例 2:基类 public virtual void DoIt(); 案例2:继承类 public override void DoIt(); 根据我运行的测试,案例 1 和案例 2 似乎具有相同的效果.有什么区别,或者更喜欢的
..
给定以下类 公共类Foo{公共 int FooId { 获取;放;}公共字符串 FooName { 获取;放;}公共覆盖布尔等于(对象 obj){Foo fooItem = obj as Foo;如果(fooItem == null){返回假;}返回 fooItem.FooId == this.FooId;}公共覆盖 int GetHashCode(){//哪个更受欢迎?返回 base.GetH
..
我的视图有一个白色背景,它必须保持这种状态.我在那个白色背景上有一个 TimePicker. android 2.3.3 一切正常,但 android 4.0.3 有一个新的 timePicker 风格.数字具有非常明亮的颜色.在白色背景上很难看到它们,而且我没有找到直接更改 textColor 的方法.我不想改变背景,因为它看起来不太好. 有什么办法可以覆盖它并将数字的颜色设置为黑色?
..
是否有任何理由使重写的 C++ 虚拟函数的权限与基类不同?这样做有什么危险吗? 例如: 类基{民众:虚拟 int foo(double) = 0;}班级孩子:公共基地{私人的:虚拟 int foo(double);} C++ faq 说这是个坏主意,但没有说明原因. 我在一些代码中看到过这个习语,我相信作者试图使类成为最终的,这是基于不可能覆盖私有成员函数的假设.但是,本文展示了一
..
我有两个基类之间的关系: 公共抽象类RecruiterBase{//属性在这里声明//此处声明的构造函数公共抽象 IQueryable获取候选人();}公共抽象类 CandidateBase{//属性在这里声明//此处声明的构造函数} 以及它们的具体实现: public class CandidateA : CandidateBase{//此处声明的构造函数}公共类 Recruiter
..
我一直在阅读有关在处理子类时如何最好地覆盖 equals 方法的内容,在这里我找到了很多帖子.他们推荐了使用 instanceof 或 getClass() 来比较不同子类的对象来实现解决方案的不同方法. 然而,关于 Effective Java,我的理解是(我是新手,所以我很可能是错的!)Bloch 认为最终两者都可能有问题,“没有办法扩展可实例化的类,并且添加一个值组件,同时保留 equ
..
可能的重复: 如何在 C++ 中声明接口? c++中的java接口? 我是一名学习 C++ 的 Java 程序员,我想知道 C++ 中是否有类似 Java 接口的东西,即另一个类可以实现/扩展多个的类.谢谢.附言新来的,如果我做错了什么,请告诉我. 解决方案 在 C++ 中,一个只包含纯虚方法的类表示一个接口. 示例: //定义Serializable接口.类可序列化{/
..
代码如下: 接口嗨{公共无效meth1();}抽象类 Hullo{公共抽象无效 meth1();}公共类 Hello 扩展了 Hullo 实现了 hi{公共无效 meth1(){}} 问题:代码编译和一切.我想知道 Hello 类中的 meth1() 覆盖了哪个 meth1()?接口中的ont还是抽象类中的ont,为什么? 解决方案 答案很简单:两者都...... 事实上,正确地
..
我今天在做一些代码审查,发现了一些开发人员编写的旧代码.事情是这样的 公共抽象类 BaseControl{内部抽象 void DoSomething();} 如果你在同一个程序集中有一个派生类,它会工作 公共类 DerivedControl : BaseControl{内部覆盖 void DoSomething(){}} 但是在不同的程序集中派生基类会导致编译时错误 DerivedCon
..
我想知道是否有任何方法可以执行以下操作.我有一个抽象类 Shape 及其所有不同的子类,我想覆盖 clone 方法.我想要在该方法中做的就是从当前的 toString() 创建一个新的 Shape.显然我不能做以下事情,因为 Shape 是抽象的.有没有另一种方法可以做到这一点,因为在每个子类中覆盖克隆只是为了简单的名称更改似乎没有用. 公共抽象类Shape {公共形状(字符串 str){//从
..
我陷入了以下情况: 我有一个名为 Ammo 的抽象类,其中 AmmoBox 和 Clip 作为子类. 我有一个名为 Weapon 的抽象类,其中 Firearm 和 Melee 作为子级. Firearm 是抽象的,ClipWeapon 和 ShellWeapon 作为子元素. 在Firearm里面,有一个void Reload(Ammo ammo); 问题在于,ClipWeap
..
我有以下结构: 抽象类 Base {公共摘要列表得到();//什么应该是泛型类型?}类 SubOne : 基础 {公共覆盖列表得到() {}}类子二:基{公共覆盖列表得到() {}} 我想创建一个抽象方法,该方法返回具体子类是什么类.因此,从示例中可以看出,SubOne 中的方法应该返回 List 而 SubTwo 中的方法应该返回 List. 我在基类中声明的签名中指定什么类
..
我有一个类是许多其他类的超类.我想知道(在我的超类的 __init__() 中)子类是否覆盖了特定的方法. 我试图用一个类方法来完成这个,但结果是错误的: 类超级:def __init__(self):如果 self.method == Super.method:打印“相同"别的:打印“不同"@类方法定义方法(cls):经过类 Sub1(超级):定义方法(自我):打印“嗨"类 Sub2(超
..
假设我有两个类,A 和 B.A 类被定义为抽象类,而 B 扩展了这个抽象类,最后我测试了结果,两个类都是同一个包的一部分. 公共抽象类 A {受保护的抽象无效方法1();受保护的无效方法2(){System.out.println("这是A类的方法");}}公共类 B 扩展 A {@覆盖受保护的无效方法1(){System.out.println("这是B对A方法的实现");}} 现在当我测试
..
我有一个具有泛型方法的抽象类,我想通过用特定类型替换泛型参数来覆盖泛型方法.所以在伪代码中我有以下内容: 公共抽象类 GetAndParse {公共 SomeClass 变量;public abstract void getAndParse(T... args);}公共类实现者扩展了 GetAndParse {//一些字段声明//一些方法声明@覆盖
..
我想从 SuperClass 强制 SubClasses 到 @Override 方法. SuperClass 中的方法不能是 abstract,因为我想提供一些基本的实现. 这是我的代码示例: 公共抽象类GenericModel{长 ID,计数器;公共字符串方法ToBeOverridenInSubClass(字符串名称){//一些基本的实现//其余细节将由子类提供返回名称;}}公共
..
基类 类抽屉{public abstract void Draw(T型);} 派生类#1 class ADrawer : 抽屉{public override void Draw(List list){foreach (var a in list){画A(a);}}public void DrawA(Agent a){//在这里绘制代码}} 派生类#2 class AnotherD
..