3. Наследяване
Механизъм за преизползване на код
Независимо разширяване на класовете на по-късен етап
Наследените класове образуват йерархия
Динамично извикване на методи – method overriding
4. Наследяване в C#
Eдин родителски клас – single inheritance A -> B
Многократно наследяване – multilevel inheritance A -> B -> C
Забранено множествено наследяване – multiple inheritance A -> C <- B
5. Пример за наследяване - родител
public class Person {
protected string name;
protected int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void show() {
Console.WriteLine(name + “ ” + age);
}}
6. Пример за наследяване - наследник
public class Employee : Person {
private int salary;
public Employee(String name, int age, int salary):base(name,age) {
this.salary = salary;
}
public void show () {
Console.WriteLine(name + “ ” + age + “ ” + salary);
}}
7. Пример за наследяване - използване
Изпробвайте три случая:
без show() метод в Employee
със show() метод в Employee
virtual пред show() метода в Person и override пред show() метода в Employee
Person p1 = new Person(“John”, 15);
p1.show();
Employee e1 = new Employee(“Jack”, 19, 1000);
e1.show();
Person x1 = new Employee(“Jake”, 21, 1100);
x1.show();
8. Особености при наследяване
sealed – забранява наследяването на дадения клас
abstract – задължава наследяването на дадения клас
Общият родител Object
Наследяване на изключения