using System;
class Vehicle { // Basis Klasse(parent class)
public Vehicle() { // Standardkonstruktor
Console.WriteLine("Base");
}
public Vehicle(string col) { // Überladenen paramentrisierten Konstruktor
Console.WriteLine("param Base");
color = col;
}
public Vehicle(string col, int zahl) { // Überladenen paramentrisierten Konstruktor
Console.WriteLine("param Base");
color = col;
}
protected string color; // Vehicle Feldcolor
public void honk() { // Vehicle Methode innerhalbder Klasse definiert
Console.WriteLine("Tuut, tuut");
}
public void drucke() {
System.Console.WriteLine("Vehicle Color:" + color);
this.honk(); // Aufruf einer Methode innerhalb des Objekts(this)
}
}
class Car : Vehicle { // Abgeleitete Klasse (child)
public Car() : base("Black", 2) { // Standard Konstructor und Aufruf des param. Basisklassenkonstruktors
color = "red"; // Feld Initialisierung
}
public Car(string col) : base (col) { // Überladenen paramentrisierten Konstruktor und Aufruf des param. Basisklassenkonstruktors
color = col; // Feld Initialisierung mit Paramater
Console.WriteLine("Car");
}
public new string color; // Feldern
//public int _maxSpeed { get; set;}; // Auto (implementation) property
private int _maxSpeed;
public int MaxSpeed {
get {
return _maxSpeed;
}
}
public new void drucke() {
System.Console.WriteLine("Farbe: " + color);
base.drucke();
base.honk(); // Aufruf einer Methode der Basisklasse
}
}
public class Test
{
public static void Main()
{
Car myObj = new Car("blue"); // Objekt myObj instanziieren
//myObj._maxSpeed = 100;
//myObj.MaxSpeed = 200;
System.Console.WriteLine("Farbe: " + myObj.color);
System.Console.WriteLine("Max Speed: " + myObj.MaxSpeed);
myObj.color = "red";
myObj.drucke();
}
}