C#抽象类和抽象方法
2016-08-16 11:13
501 查看
如果一个类不与具体的事物相联系,而只是表达一种抽象的概念,仅仅是作为其派生类的一个基类,这样的类就是抽象类,在抽象类中声明方法时,如果加上abstract时就是抽象方法
在C#中使用关键字 abstract 来定义抽象类和抽象方法。
不能初始化的类被叫做抽象类,它们只提供部分实现,但是另一个类可以继承它并且能创建它们
的实例。
"一个包含一个或多个纯虚函数的类叫抽象类,抽象类不能被实例化,进一步
一个抽象类只能通过接口和作为其它类的基类使用."- C++ Programming Language by Stroustrup Chapter13.2
抽象类能够被用于类,方法,属性,索引器和事件,使用abstract 在一个类声明中表示该类倾向要作为其它类的基类
成员被标示成abstract,或被包含进一个抽象类,必须被其派生类实现。
abstract class ShapesClass
class Square : ShapesClass
abstract class MyAbs
class MyClass : MyAbs
class MyClient
abstract class MyAbs
class MyClass : MyAbs//must implement base class abstract methods
class MyClient
abstract class MyAbs
//not necessary to implement all abstract methods
//partial implementation is possible
abstract class MyClass1 : MyAbs
class MyClass : MyClass1
class MyClient
class MyClass1 // Non-Abstract class
abstract class MyAbs : MyClass1 // Inherits from an non-abstract class
class MyClass : MyAbs//must implement base class abstract methods
class MyClient
interface IInterface
abstract class MyAbs : IInterface
class MyClass : MyAbs//must implement base class abstract method
class MyClient
我们不能把关键字abstract 和 sealed 一起用在C#中,因为一个密封类不能够被抽象。
abstract class MyAbs
class MyClass1 : MyAbs
class MyClient
interface I
abstract class C: I
抽象类具有以下特征:
1.抽象类不能被实例化。
2.抽象类可以包含抽象方法和访问器
3.不能把抽象类用密封(sealed)来修饰,那就意味着类不能被继承,这违反抽象类被继承的原则。
4.一个派生于一个抽象类的非抽象类必须包括所有的继承来的抽象方法和访问器的实现
5.在方法和属性中使用abstract 关键字意味着包含它们的实现。
在C#中使用关键字 abstract 来定义抽象类和抽象方法。
不能初始化的类被叫做抽象类,它们只提供部分实现,但是另一个类可以继承它并且能创建它们
的实例。
"一个包含一个或多个纯虚函数的类叫抽象类,抽象类不能被实例化,进一步
一个抽象类只能通过接口和作为其它类的基类使用."- C++ Programming Language by Stroustrup Chapter13.2
抽象类能够被用于类,方法,属性,索引器和事件,使用abstract 在一个类声明中表示该类倾向要作为其它类的基类
成员被标示成abstract,或被包含进一个抽象类,必须被其派生类实现。
abstract class ShapesClass
class Square : ShapesClass
abstract class MyAbs
class MyClass : MyAbs
class MyClient
abstract class MyAbs
class MyClass : MyAbs//must implement base class abstract methods
class MyClient
abstract class MyAbs
//not necessary to implement all abstract methods
//partial implementation is possible
abstract class MyClass1 : MyAbs
class MyClass : MyClass1
class MyClient
class MyClass1 // Non-Abstract class
abstract class MyAbs : MyClass1 // Inherits from an non-abstract class
class MyClass : MyAbs//must implement base class abstract methods
class MyClient
interface IInterface
abstract class MyAbs : IInterface
class MyClass : MyAbs//must implement base class abstract method
class MyClient
我们不能把关键字abstract 和 sealed 一起用在C#中,因为一个密封类不能够被抽象。
abstract class MyAbs
class MyClass1 : MyAbs
class MyClient
interface I
abstract class C: I
抽象类具有以下特征:
1.抽象类不能被实例化。
2.抽象类可以包含抽象方法和访问器
3.不能把抽象类用密封(sealed)来修饰,那就意味着类不能被继承,这违反抽象类被继承的原则。
4.一个派生于一个抽象类的非抽象类必须包括所有的继承来的抽象方法和访问器的实现
5.在方法和属性中使用abstract 关键字意味着包含它们的实现。
相关文章推荐
- C#抽象类和抽象方法
- C#抽象类和抽象方法
- C#抽象类和抽象方法的应用
- c#抽象类和抽象方法
- C#抽象类和抽象方法
- C#抽象类和抽象方法
- C#抽象类和抽象方法
- C#抽象类和抽象方法
- PHP5.0对象模型探索之抽象方法和抽象类
- 在C#中使用虚方法、重写方法和抽象方法实现表达式运算
- C#抽象类和接口的使用
- MyGraphi--Java抽象类、抽象方法
- 抽象方法
- Java抽象类和抽象方法
- 抽象类和抽象方法的定义和使用
- PHP抽象类和抽象方法
- C#基础知识整理:基础知识(6) 抽象类和抽象方法
- 黑马程序员——枚举的原理及枚举构造方法调用,抽象方法实现等等介绍
- RDD(转):一种基于内存的集群计算的容错性抽象方法(一)
- C#抽象类及其方法的学习