Grundsätzlich sollte die Oberklasse Variablen (oder Eigenschaften, was auch immer funktioniert), die in den Unterklassen gesetzt werden und sollte auch Methoden, die alle Unterklassen verwenden, enthalten. Ich weiß nicht, ob es eine Möglichkeit gibt, dies zu tun, ohne 2 Klassen zu verwenden, eine, die eine Schnittstelle ist, die die Variablen enthält, und eine andere Klasse, die die Methoden enthält, aber ich nehme an, dass es solche gibt. Ich bin ziemlich neu in C#, wie Sie sich vorstellen können.Erstellen Sie eine Oberklasse mit abstrakten Variablen und nicht abstrakten Methoden in C#
Nur zur Klarstellung, dies ist für ein Projekt in Unity und die Oberklasse wird eine allgemeine Zeichenklasse sein, die alle Unterklassen (Zeichen) verwenden.
Edit: Viele andere Variablen und Methoden werden später hinzugefügt werden, aber hier ist eine oberflächliche Vorschau von dem, was sollte es
using UnityEngine;
using System.Collections;
public abstract class CharacterClass : MonoBehaviour {
int MaxHitPoints { get; set; }
int ArmorRating { get; set; }
int Speed { get; set; }
int Strength { get; set; }
int Agility { get; set; }
void changeHP(int change)
{
MaxHitPoints += change;
}
}
Meinst du, dass die Unterklassen andere Standardwerte oder andere konstante Werte setzen? –
Das ist eine zu allgemeine Frage, könnten wir sehen, was Sie bisher versucht haben? – bodangly
Setze Standardwerte (dh die maximale HP wird als Zeichenebene geändert) – Edogmonkey