C#——抽象类(Abstract Class)、密封类(Sealed class)、接口(interface)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37813928/article/details/80425717
/*C#快要期末考试了,还是抓紧复习复习基础知识吧...打卡Day 1*/

一、抽象类和抽象方法

1.抽象类本身不能实例化,也就是不能创建对象,只能作为基类使用,用关键字abstract修饰。

2.抽象类中的成员可以是抽象成员,也可以是非抽象成员。

3.抽象方法只存在于抽象类的定义中,非抽象类中不能包含抽象方法。

定义格式:

访问修饰符 abstract 返回值类型 方法名(参数表);

4.例题:

Which of the following is wrong?

①Abstract class could contain non abstract method//抽象类可能没有抽象方法

②A class containing abstract method must be a abstract class.//含有抽象方法的类一定是抽象类

③An abstract class cannot be instantiated.//不能实例化

④An abstract class can be sealed class.//抽象类不可能是密封类,因为抽象类必须要被继承才有意义。

二、密封类和密封方法

1.如果不希望一个类被其他类继承,可以将该类定义为密封类,即不能作为基类的类。用关键字sealed修饰。

2.密封方法可以被继承,但不能被派生类重写。

3.只有被重写的方法才能定义为密封方法。即sealed 和override 连用。

三、接口

1.接口的声明格式:

访问修饰符 interface 接口名
{
    接口成员声明
}

2.接口成员声明不包括数据成员,只能包含方法、属性、事件、索引等成员。

   接口只包含接口成员的声明,不包含实现。

3.接口中方法成员的声明格式如下:

返回值类型 方法名 (参数表)

4.接口中属性成员的声明格式:

类型 属性名 {get; set; } 

5.接口成员的访问修饰符默认是public,在声明时不能再为接口成员指定任何访问修饰符。

6.接口成员不能有static、abstract、override、virtual修饰符。

猜你喜欢

转载自blog.csdn.net/qq_37813928/article/details/80425717