C#基础笔记(4)

//C#中类的继承

允许我们根据一个类来定义另一个类,这样的话会这使得创建和维护应用程序变得更简单容易。有利于节省开发时间。当创建一个类时,我们不需要完全重新编写,只需要设计一个新的类,来继承了已有的类的即可。

这个已有的类被称为的基类,父类;这个新的类被称为派生类,子类。

C# 继承的特点:

  1. 是对基类的扩展,可以添加新的成员,但不能移除已经继承的成员 的定义。
  2. 继承是可以传递的。
  3. 构造函数和析构函数不能被继承,且基类中成员的访问方式只能决定派生类能否访问它
  4. 如果定义了与继承而来的成员同名的新成员,那么将覆盖已继承的成 员
  5. 类可以定义虚方法、虚属性及虚索引指示器,派生类能重载这些成员,使类可以展示出多态性
  6. 派生类只能从一个类中继承,可以通过接口来实现多重继承。

C#继承关系中构造方法之间的关系:

1.在实例化子类对象,会先调用父类的构造方法,然后在调用子类的构造方法

2.默认情况下,在子类的构造器中都会自动调用父类的无参构造器

3.如果需要调用父类中带参数的构造器要使用“:base(参数)”的形式

//Object类简介

Object 类是 C# 语言中最原始、最重要的类,每个 C# 类都是它的 子类,它实现了每个类都必须具有的基本方法。

Object 类中4 个常用的方法:Equals,GetHashCode,GetType , ToString

Equals方法:

法主要用于比较两个对象是否相等,相等返回 True,不相等返回 False

在 C# 语言中,Equals 方法提供了两个定义方法:

静态方法:Equals (object ol, object o2);

非静态方法:Equals (object o);

GetHashCode方法

返回当前 System.Object 的哈希代码,每个对象的哈希值都是固定的。该方法不含有任何参数,不是静态方法,需要使用实例来调用。对于不同实例的哈希值是不同的,因此可以通过该方法比较对象是否相等。

GetType方法

用于获取当前实例的类型,返回值为 System.Type 类型

ToString方法

返回一个对象实例的字符串,在默认情况下将返回类类型的限定名。对于值类型,则为将值转换为字符串类型的值。 任何类都可以重写 ToString 方法,返回自定义的字符串。

//继承中的关键字

base关键字

除了调用父类的构造方法以外还可以调用父类的属性和方法

base指代 当前对象中父类的部分内容。

如果在同名的方法中使用 base 关键字调用父类中的方法,相当于把父类中的方法内容复制到该方法中。

virtual关键字

能修饰 方法、属性、索引器以及事件等定义成虚拟的,用到父类的成员中这些成员将会在继承后重写其中的内容。

重写的概念:子类中重新定义与父类重名且结构相同方法

abstract关键字

该关键字能修饰类和方法,修饰的方法被称为抽象 方法、修饰的类被称为抽象类

在 C# 语言中抽象方法是一种不带方法体的方法,仅包含方法的声明。

sealed关键字

能修饰类或者类中的方法,修饰方法必须出现在子类中,并且是子类重写的父类方法,必须与 override一起使用

特点: 不能被继承 ,不能被重写

//多态

多态称为运行时多态,也就是在运行时同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果

多态性通过派生类覆写基类中的虚函数型方法或者抽象方法来实现。

多态性分为两种一种函数重载是在编译阶段完成的多态,一种类的多态是在运行时完成

编译时的多态性:

通过重载来实现的,对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。

运行时的多态性:

是指直到系统运行时,才根据实际情况决定实现何种操作。

构成多态的条件:

具有继承关系。

子类中重写父类的虚方法。

父类实例指向子类的对象。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值