哈喽,欢迎来到我们的狗刨网,今天我们主要讲了继承的复习还有多态的复习,最后讲的抽象类,在我看来抽
象类真的不愧是抽象类,让我理解的很抽象,下面就让我们看看今天讲的有哪些吧。
1)继承:
1、继承 :子类继承父类用" 子类:父类"
特征:
1、子类拥有父类的所有属性和方法(除构造方法外)
2、子类只能访问父类用public 和protected修饰的属性和方法
3、单继承
4、用sealed修饰的类不能被继承
5、子类调用父类的带参数的构造方法时必须用base,子类构造方法可以不带参数
6、子类重写父类方法时,父类同名方法用virtual修饰,子类同名方法用override修饰
7、子类方法访问父类同名方法时用base
8、创建子类对象时,先调用父类的构造方法,然后再调用子类的构造方法
例如:父类:class Animal
{
protected int age;
public void Eat(){}
class Cat:Animal
{
static void Main(string[]args)
{
Cat c=new Cat();
console.writeline(c.age);
c.Eat();
}
}
}
2)多态
在c#继承中:子类使用父类的方法,而多态:父类使用子类的方法。
多态的定义:通过继承实现的不同对象调用相同的方法,表现出不同的行为。
3)抽象类
定义:不能初始化的类叫做抽象类,在c#中使用关键字abstract来定义抽象类和抽象方法。
抽象类具有以下特征:
1、抽象类不能被实例化。
2、抽象类可以包含抽象方法和访问器
3、不能把抽象类用密封(sealed)来修饰,那就意味着类不能被继承,这违反抽象类被继承的原则。
4、抽象类的非抽象子类必须实现其继承的所有抽象方法和抽象访问器
5、通过声明派生类也为抽象,我们可以避免所有或特定的虚方法的实现。
这就是抽象类的部分实现对于抽象,我自己的理解是,抽象首先在父类定义一个abstract,这个是在修饰符后面定义,然后在方法里面你可以定义两个量,可以是抽象的也可以是非抽象的,对于抽象的,需要在方法里面加内容abstract,并且没有方法体,抽象类不能被实例化,在另一个类中建立一个子类,然后把父类的方法拿过来,在子类前面加override,表示重写。这是我自己理解的抽象类。