Vererbung (CSharp): Unterschied zwischen den Versionen
K |
K |
||
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 6: | Zeile 6: | ||
{| | {| | ||
− | |style="width:30em"|< | + | |style="width:30em"|<syntaxhighlight lang="csharp"> |
Zeile 37: | Zeile 37: | ||
− | </ | + | </syntaxhighlight> |
|style="width:1em"| | |style="width:1em"| | ||
− | |style="width:30em"|< | + | |style="width:30em"|<syntaxhighlight lang="csharp">using System; |
using System.Drawing; | using System.Drawing; | ||
using System.Windows.Forms; | using System.Windows.Forms; | ||
Zeile 70: | Zeile 70: | ||
} | } | ||
− | }</ | + | }</syntaxhighlight> |
|} | |} | ||
− | Durch | + | Durch <code>new</code> wird ein neues Objekt (eine [[Instanz]]) erstellt, das eine Kopie des Hauptobjekts ist. |
Zeile 80: | Zeile 80: | ||
In folgendem Programm habe ich nun eine Klasse ''MyForm'' erstellt, die mittels '':'' von der Klasse ''Form'' alle Eigenschaften erbt: | In folgendem Programm habe ich nun eine Klasse ''MyForm'' erstellt, die mittels '':'' von der Klasse ''Form'' alle Eigenschaften erbt: | ||
{| | {| | ||
− | |style="width:30em"|< | + | |style="width:30em"|<syntaxhighlight lang="csharp">using System.Windows.Forms; |
public class MyForm : Form { | public class MyForm : Form { | ||
Zeile 111: | Zeile 111: | ||
− | </ | + | </syntaxhighlight> |
|style="width:1em"| | |style="width:1em"| | ||
− | |style="width:30em"|< | + | |style="width:30em"|<syntaxhighlight lang="csharp">using System; |
using System.Drawing; | using System.Drawing; | ||
using System.Windows.Forms; | using System.Windows.Forms; | ||
Zeile 144: | Zeile 144: | ||
} | } | ||
− | }</ | + | }</syntaxhighlight> |
|} | |} | ||
Aktuelle Version vom 18. April 2021, 17:55 Uhr
Im folgenden wird in anschaulicher Weise die Vererbung in C#, welches ein Teilbereich der Objektorientierung ist, beschrieben. Alle Programme sehen, wenn man sie ausführt, genau gleich aus und bedienen sich auch gleich. Auch wenn der Quellcode immer wieder etwas anders ist.
Fangen wir mit einem einfachen kleinen Programm an, das ein Fenster öffnet und drei Buttons erstellt. Zwei davon sind rot:
|
using System;
using System.Drawing;
using System.Windows.Forms;
public class MyProgram {
public static void Main(string[] args) {
Form f = new Form();
f.Font = SystemFonts.MessageBoxFont;
f.Text = "My Window";
FlowLayoutPanel p = new FlowLayoutPanel();
Button b1 = new Button();
Button b2 = new Button();
Button b3 = new Button();
b1.Text = "Button 1";
b2.Text = "Button 2";
b3.Text = "Button 3";
b1.BackColor = Color.FromArgb(255,0,0);
b3.BackColor = Color.FromArgb(255,0,0);
p.Controls.Add(b1);
p.Controls.Add(b2);
p.Controls.Add(b3);
f.Controls.Add(p);
p.Width = 300;
p.Height = 100;
f.Width = 350;
f.Height = 150;
Application.EnableVisualStyles();
Application.Run(f);
}
}
|
Durch new
wird ein neues Objekt (eine Instanz) erstellt, das eine Kopie des Hauptobjekts ist.
Betrachten wir uns nun Form. Man kann in C# eine neue Klasse erstellen (sofern die Klasse, von der sie sich ableitet, nicht "private" ist), die sämtliche Eigenschaften der Klasse, von der sie abgeleitet wurde, erbt.
In folgendem Programm habe ich nun eine Klasse MyForm erstellt, die mittels : von der Klasse Form alle Eigenschaften erbt:
using System.Windows.Forms;
public class MyForm : Form {
public MyForm() {
}
}
|
using System;
using System.Drawing;
using System.Windows.Forms;
public class MyProgram {
public static void Main(string[] args) {
MyForm f = new MyForm();
f.Font = SystemFonts.MessageBoxFont;
f.Text = "My Window";
FlowLayoutPanel p = new FlowLayoutPanel();
Button b1 = new Button();
Button b2 = new Button();
Button b3 = new Button();
b1.Text = "Button 1";
b2.Text = "Button 2";
b3.Text = "Button 3";
b1.BackColor = Color.FromArgb(255,0,0);
b3.BackColor = Color.FromArgb(255,0,0);
p.Controls.Add(b1);
p.Controls.Add(b2);
p.Controls.Add(b3);
f.Controls.Add(p);
p.Width = 300;
p.Height = 100;
f.Width = 350;
f.Height = 150;
Application.EnableVisualStyles();
Application.Run(f);
}
}
|
Im Programm MyProgram wird nun MyForm auch genau so genutzt und behandelt wie zuvor Form. Und das Ergebnis ist ebenfalls gleich.
(wird fortgesetzt...)