previous arrowprevious arrow
next arrownext arrow
PlayPause
previous arrownext arrow
Shadow

Wir realisieren Ihre CAD-Projekte

im AutoCAD, Inventor, Revit und Autodesk Forge Platform

Umfeld
Wir helfen Ihnen bei der Realisierung Ihrer Projekte.

Blog.CAD-Becker.de

Beiträge zu AutoCAD und dessen Vertikalprodukte.

Tipps und Tricks, viele Neuigkeiten aus der Autodesk Welt.
3 Minuten Lesezeit (526 Worte)
Empfohlen 

Visual Lisp To C#: OOPS - Was ist die objektorientierte Programmierung? Hier Vererbung.

Anzeige

Aktuelle Top-Angebote der Telekom, Online-Vorteile, Attraktive Prämien

​Man könnte sich fragen, was eine Vererbung mit einer Programmiersprache zu tun hat. Sie gibt es aber wirklich. Für Visual-Lisp Programmierer ist das vielleicht eigenartig, weil es diese Vererbung in Lisp nicht gibt.

Ich möchte mit diesem Posting auf die Vererbung eingehen und ich hoffe, dass sie nach dem Lesen dieses Posting verstanden wird.

​Im vorherigen Posting bin ich auf Klasen und Objekte eingegangen, diesmal wird die Klassen Definition um eine Vererbung erweitert.

Es macht keinen Sinn sich wiederholende Eigenschaften oder Methoden, z.B. eine ID oder einen Namen eines Objekts in jeder Klasse neu zu definieren oder? Nein, natürlich nicht. Um das zu lösen benutzen wir die Vererbung. Die Klasse erbt also Standard-Eigenschaften und -Methoden.

public class Basis
{
    private string m_ID = string.Empty;
    private string m_Name = string.Empty;
    
    public string ID
    {
        get
        {
            return m_ID;
        }

        set
        {
            m_ID = value;
        }
    }
    
    public string Name
    {
        get
        {
            return m_Name;
        }

        set
        {
            m_Name = value;
        }
    }
    
    
    public Base()
    {
        Initialize();
    }

    public Base(string Name)
    {
        m_Name = Name;
        Initialize();
    }
    
    private void Initialize()
    {

    }
    
} 

​Wir erstellen eine Klasse, die als Basis für jede andere Klasse genutzt werden soll. Sie wird vererbt. 

Wir erstellen eine neue Klasse mit einem Namen, den wir frei wählen können. Ich habe hier den Namen Base genutzt, um klar zumachen, dass es sich um eine Klasse handelt, die geerbt werden soll.

Jetzt werden wahrscheinlich einige Entwickler, die sich mit C# oder VB.Net auseinandergesetzt haben intervenieren. Ich weiß, der nebenstehende Code ist noch nicht optimal. Aber dazu später mehr.

Die Klasse "Basis" soll nun geerbt werden. Dieses ist eigentlich recht simple.

Zunächst wird hinter der Deklaration der Klasse Fahrzeug die Klasse, mit einem Doppelpunkt getrennt, geschrieben, die geerbt werden soll. Hier die Klasse "Base".

Der Konstruktor ruft die Klasse "Basis" mit der Anweisung base() auf. 

Bitte verwechseln Sie nicht die Namen Basis und base. Basis ist der Klassenname und base ist eine Anweisung aus C#.

Werden dem Konstruktor Parameter übergeben, können diese ggf. der Basisklasse übergeben werden.

    public class Fahrzeug : Base
    {
        
        public Fahrzeug() : base()
        {
            
        }
        
        public Fahrzeug(string Name) : base(Name)
        {
            
        }
        
    } 

​Unsere Basisklasse kann instanziert werden und es entsteht ein Objekt. Das möchte man aber in den meisten Fällen verhindern. Deshalb deklariert man die Klasse etwas anders.

Das Wort "abstract" vor Deklaration class verhindert, dass diese Klasse instanziert werden kann.

Ansonsten bleibt der Code der Klasse identisch.

Der untere nebenstehende Code wäre so nicht möglich. Der Compiler wirft einen Fehler raus.

public abstract class Basis
{
    
    
} 
Basis m_Basis = new Basis(); 

Zusätzliche Information

  • Benötigen Sie Hilfe, dann helfe ich gerne. Sagen Sie einfach Bescheid. Meine Kontakte finden Sie über den Menüpunkt "Über uns".
Visual Lisp To C#: OOPS - Was ist die objektorient...
Visual Lisp To C#: OOPS - Was ist die objektorient...

Ähnliche Beiträge

 

Über mich

  Dipl.-Ing.
Jürgen A. Becker
Versorgungstechnik

 

Google Translator

 

Suchen

Abonniere Blog

Kalender

Warte kurz, während wir den Kalender laden

Kontakt

Jürgen A. Becker

CAD-Becker.de
Detmolder Str. 786
33699 Bielefeld
Germany
Telefon
+49 (5202) 9953808 
Mobil
+49 170 870 8679
E-Mail
Juergen.Becker(at)CAD-Becker.de