面向对象基础知识(二)-类的继承

原创 2007年09月26日 16:47:00
 
一、静态类和静态类成员

 

静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数。静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化。当类中没有依赖对象标识的数据或行为时,就可以使用静态类。

静态类静态类

类可以声明为

使用静态类来包含不与特定对象关联的方法。例如,创建一组不操作实例数据并且不与代码中的特定对象关联的方法是很常见的要求。您应该使用静态类来包含那些方法。

静态类的主要功能如下:

它们仅包含静态成员。

它们不能被实例化。

它们是密封的。

它们不能包含实例构造函数(C# 编程指南)。

因此创建静态类与创建仅包含静态成员和私有构造函数的类大致一样。私有构造函数阻止类被实例化。

使用静态类的优点在于,编译器能够执行检查以确保不致偶然地添加实例成员。编译器将保证不会创建此类的实利。

静态类是密封的,因此不可被继承。静态类不能包含构造函数,但仍可声明静态构造函数以分配初始值或设置某个静态状态。

二、抽象类、密封类及类成员

1、抽象类

使用 abstract 关键字可以创建仅用于继承用途的类和成员,即定义派生的非抽象类的功能。使用 sealed 关键字可以防止继承以前标记为 virtual 的类或某些类成员。

抽象类不能实例化。抽象类的用途是提供多个派生类可共享的基类的公共定义。例如,类库可以定义一个作为其多个函数的参数的抽象类,并要求程序员使用该库通过创建派生类来提供自己的类实现。

抽象类也可以定义抽象方法。方法是将关键字 abstract 添加到方法的返回类型的前面。例如:

抽象方法没有实现,所以方法定义后面是分号,而不是常规的方法块。抽象类的派生类必须实现所有抽象方法。当抽象类从基类继承虚方法时,抽象类可以使用抽象方法重写该虚方法。例如:

 

 

如果将虚方法声明为抽象方法,则它对于从抽象类继承的所有类而言仍然是虚的。继承抽象方法的类无法访问该方法的原始实现。在前面的示例中,类 F 上的 DoWork 无法调用类 D 上的 DoWork。在此情况下,抽象类可以强制派生类为虚方法提供新的方法实现。

2、密封类和类成员

static 的,以指示它仅包含静态成员。不能使用 new 关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR) 自动加载。

【java基础知识】面向对象三大特性之继承

1.复用类(1)组合:把一个类当做对象放到另一个类里面去使用 (2)继承:基于已存在的类构造一个新类。 *已存在的类称为父类、基类或超类; *新类称为子类、派生类、或孩子类。 (3)继承与组合...

Java学习之旅基础知识篇:面向对象之封装、继承及多态

Java是一种面向对象设计的高级语言,支持继承、封装和多态三大基本特征,首先我们从面向对象两大概念:类和对象(也称为实例)谈起。来看看最基本的类定义语法: /*命名规则: *类名(首字母大...

面向对象基础知识(5)- 封装 继承 多态

封装 继承 多态 这三个是面向对象的基本特征、有了这三个特征的编程语言、才是面向对象编程语言、如C# 封装: 特性      1 每个对象包含他操作的所有信息      2不必依赖其他对象来完成某些...

黑马程序员——java基础知识之面向对象(二)

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——- javajia (一)、面向对象之继承...

黑马程序员---java基础知识之面向对象(二)

java基础知识之面向对象(三)

面向对象----类基础知识

1、static和const变量      static变量是类的所有对象所共享的,他必须在类的外面定义和初始化,计算类的内存大小时不用考虑static变量      const变量只能在类的初始...

Java 基础知识(二)之面向对象技术

1.    面向对象与面向过程的区别        面向对象把数据及对数据的操作方法放在一起,作为一个互相依存的整体,即对象。对同类对象抽象出其共性,即类,类中的大多数数据,只能被本类的方法进行处理。...

黑马程序员--java基础知识之面向对象(二)

java基础知识之面向对象(二)

黑马程序员——Java基础知识——面向对象(二)

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! 继承、抽象类、接口   -----------...

C/C++基础知识03---面向对象---类(Classes)

类(Classes)类(class)是一种将数据和函数组织在同一个结构里的逻辑方法。定义类的关键字为class ,其功能与C语言中的struct类似,不同之处是class可以包含函数,而不像struc...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面向对象基础知识(二)-类的继承
举报原因:
原因补充:

(最多只允许输入30个字)