出于好奇,我尝试在基类中重写抽象方法,并在实现中使用抽象方法。如下所示:
public abstract class FirstAbstract
{
public abstract void SomeMethod();
}
public abstract class SecondAbstract : FirstAbstract
{
public abstract override void SomeMethod();
//?? what sense does this make? no implementaion would anyway force the deri
我试着用继承来练习,只是在一般情况下让脚本相互交互,我认为做一个简单的效果系统可能很有趣,但是我有点困在如何构造东西上。
我一直想这么做
public abstract class BaseEffect : ScriptableObject
{
//not sure if this is a good use of enum
public enum EffectType
{
harm, //can be applied to enemies
help, //can be applied to allies
self //
我有一个带有抽象属性的基类:
public abstract int ID {get;set;}
现在,我有一个子类,它是XmlSerialized。所以,它有:
[XmlElement("something")]
public override int ID {
get { //... }
set { //... }
}
我不能将XmlElement属性移到基类中,因为每个子类都会有一个不同的xml元素名。
现在,当我反序列化这个类时,我得到了以下错误:
成员“Subclass.ID”隐藏继承的成员“BaseClass.ID”,但具有不同的自定义属性。
我能做什么?
下面是来自的一些代码
// compile with: /target:library
public class D
{
public virtual void DoWork(int i)
{
// Original implementation.
}
}
public abstract class E : D
{
public abstract override void DoWork(int i);
}
public class F : E
{
public override void DoWork(int i)
{
对于继承具有接口以实现该接口的基类的成员,是否有其他方法。
某些接口
public interface ICanWork
{
void DoSomething();
}
抽象类
public abstract Class MyBase : ICanWork
{
// I do not want to implement the ICanWork but instead want the derived class which inherit it
}
类,我继承了基类。
public class House : MyBase
{
// i want the com
我有一些通用的助手方法。我希望能够从抽象类中调用一个类,但是我没有派生类型可以传递到泛型方法中。我怎么弄到它?我也不想让抽象类成为泛型。这个是可能的吗?!这里有一些代码不起作用..。::(
public abstract class Base
{
public bool Save()
{
try
{
Helper<this.GetType()>.Save(this);
return true;
}
catch (Exception ex)
我有一个抽象基类,并且想在派生类中实现一个函数。为什么我必须在派生类中再次声明函数?
class base {
public:
virtual int foo(int) const = 0;
};
class derived : public base {
public:
int foo(int) const; // Why is this required?
};
int derived::foo(int val) const { return 2*val; }
对于这类问题,我已经看到了多个答案,但我不知道如何解决。主要的问题可能是我正在处理其他人的代码,但是我。下面是这个问题的简化示例:我有一个类链接了许多其他类:
class Interface
: public system_atoms,
public system_io,
/* etc, others */
{
/* A few functions, none that matters here - none from the inherited classes redefined */
}
在system_atoms内部,我有:
class system_atoms {
问题标题似乎有点令人困惑,但我将在这里尝试澄清我的问题。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
public abstract class Employee
{
private string name;
private int empid;
BenefitPackage _BenefitPackage = new BenefitPac
我正在创建一个抽象类。我希望我的每个派生类都被强制实现一个特定的构造函数签名。因此,我做了我想要强迫他们实现一个方法的事情,我做了一个抽象的方法。
public abstract class A
{
abstract A(int a, int b);
}
但是,我收到一条消息,说这个项目的抽象修饰符是无效的。我的目标是强制执行一些这样的代码。
public class B : A
{
public B(int a, int b) : base(a, b)
{
//Some other awesome code.
}
}
这是所有的C# .NET代
当基类不是抽象时,是否有一种方法要求在派生类中重写属性?例如:
public abstract class BaseClass
{
protected abstract string Test {get;}
}
internal class FirstClass : BaseClass
{
protected override string Test => "First Class";
// Methods common to FirstClass and SecondClass
}
internal class SecondClass : F
public class Shapes
{
public virtual void Color()
{
Console.WriteLine("Shapes");
}
}
public class Square : Shapes
{
public void Color()
{
Console.WriteLine("Square");
}
}
public class Test
{
public static void main()
{
Shapes s1 = new Shapes();
s1.C
嗨,我是C#控制台应用程序中的新手,我正在使用抽象和覆盖,但是我在公共抽象的第一个方法中获得了堆栈,double (),我得到了一个错误,它说不能声明一个主体,因为它标记为抽象,请帮助我。谢谢!
`
abstract class Cake
{
public string _flavor, _size;
public int _quantity;
public Cake(string flavor, string size, int quantity)
{
_flavor = flavor;
我有一个基类"BaseClass“和n个派生类DerivedCLass1,DerivedClass2...(我不知道“派生”是否是正确的术语,但我的DerivedClassX是BaseClass,只添加了几个方法。如Vehicle vs Car / MotorCycle / Truck)
所有的派生类都共享一个生成/存储pdf的storePDF函数。这个方法不应该从BaseClass实例中调用,因为这是不相关的。但我不希望代码在派生类中重复。我应该如何组织我的课程?(或接口)
public class BaseClass
{
public static string selec
我有3个具体的类,分别名为ClassA (即内置的System.Web.UI.Page类)、ClassB和ClassC (参见下面的代码)。ClassC是ClassB的派生类,而后者又是ClassA的派生类。ClassB有自己的成员。我的问题是,ClassC如何调用或访问ClassB的成员(公共属性、公共方法)?如何在ClassC源码中解决类的作用域问题,避免歧义?提前谢谢。
一些代码:
// ClassA = System.Web.UI.Page
public class System.Web.UI.Page {
// built-in class
}
public class C
让我们来看看类--来自外部库的
class A {
public:
void method() {
cout << "hi";
}
};
和我的抽象类B和纯虚拟method()
class B {
public:
virtual void method() = 0;
};
我创建了D类,由A和B派生
class D : public A, public B {
};
但是,当我创建D实例时,会得到以下错误:
error: cannot declare variable ‘d’
所以我试着用不同的单位类型制作一个游戏,每一个都有不同的运动速度。我真的不知道如何面对这个问题:起初,我在每个unitType上都做了一个函数来定义速度,但我不认为这是最理想的方法。现在,我正在考虑创建一个MovementController类。这就是我到目前为止所做的工作:首先,我做了一个通用的Unit -to,保持它很简单,我将只显示运动速度属性-:
public class GenericUnit : MonoBehaviour
{
float movementSpeed;
public float mspeed
{
get { return
我有这个基类:
abstract class Base
{
public int x
{
get { throw new NotImplementedException(); }
}
}
和下面的后代:
class Derived : Base
{
public int x
{
get { //Actual Implementaion }
}
}
当我编译的时候,我得到了这样的警告:派生类的x定义将会隐藏它的基础版本。是否可以覆盖c#类方法中的属性?