Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C# Vererbung: Wiederverwendbaren & wartbaren Code erstellen

Vererbung Grundlagen

Vererbung erlaubt eine neue Klasse (abgeleitete Klasse) basierend auf einer bestehenden Klasse (Basisklasse) zu definieren. Die abgeleitete Klasse erbt Member (Felder, Methoden, Properties) der Basisklasse und kann diese erweitern oder überschreiben.

Modelliert die IST-EIN (IS-A) Beziehung: Hund IST-EIN Säugetier IST-EIN Tier.

Syntax

class BaseClass { ... }
class DerivedClass : BaseClass { ... }

Beispiel: Shape & Rectangle

public class Shape
{
    protected int Width, Height; // protected: für abgeleitete Klassen sichtbar

    public void SetWidth(int w) => Width = w;
    public void SetHeight(int h) => Height = h;
}

public class Rectangle : Shape
{
    public int GetArea() => Width * Height;
}

// Nutzung
var rect = new Rectangle();
rect.SetWidth(5);
rect.SetHeight(7);
Console.WriteLine($"Area: {rect.GetArea()}"); // 35

Basisklassen-Konstruktor aufrufen

Über base(parameter) in der Initialisierungsliste des abgeleiteten Konstruktors:

public class Rectangle
{
    protected double Length, Width;
    public Rectangle(double l, double w) { Length = l; Width = w; }
    public double GetArea() => Length * Width;
}

public class Tabletop : Rectangle
{
    private double CostPerUnit = 70;

    public Tabletop(double l, double w) : base(l, w) { } // Basis-Konstruktor

    public double GetCost() => GetArea() * CostPerUnit;

    public void Display()
    {
        Console.WriteLine($"Length: {Length}, Width: {Width}, Area: {GetArea()}, Cost: {GetCost()}");
    }
}

Mehrfachvererbung

C# unterstützt keine Mehrfachvererbung von Klassen. Stattdessen: Interfaces (eine Klasse kann beliebig viele Interfaces implementieren).

Beispiel: Interface als Vertrag

public interface IPaintCost
{
    int GetCost(int area);
}

public class Rectangle : Shape, IPaintCost
{
    public int GetArea() => Width * Height;
    public int GetCost(int area) => area * 70;
}

// Nutzung
var rect = new Rectangle();
rect.SetWidth(5); rect.SetHeight(7);
int area = rect.GetArea();
Console.WriteLine($"Area: {area}, Paint Cost: ${rect.GetCost(area)}");

Wichtige Regeln

C Sprache

  1. C# Klassen & Objekte: Fundamente für robustes OOP
  2. C# Static Keyword: Statische Variablen, Methoden und Klassen meistern
  3. C# Geschachtelte Klassen verstehen: Definition, Verwendung und Vererbung
  4. C++ Klassentemplates meistern: Ein praktischer Leitfaden
  5. Python Vererbung meistern: Konzepte, Syntax und praktische Beispiele
  6. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  7. Java ObjectOutputStream meistern: Serialisierung, Methoden und praktische Beispiele
  8. Java Generics meistern – Wiederverwendbaren, typsicheren Code erstellen
  9. Java-Dateioperationen mit java.io meistern – Erstellen, Lesen, Schreiben & Löschen
  10. C# Programmstruktur verstehen: Kernkomponenten & Beispiel