C#基础总结三

Object类
Object类是C#最原始的最重要的类,是所有类的祖先,每个C#类都是它的子类,它实现了每个类都必须具有的基本方法。
可以理解为object类是所有类的基类,然后其他类都是继承类的意思
在 Object 类中提供了 4 个常用的方法,即 Equals、GetHashCode、GetType 以及 ToString 方法。
这4个方法可以被任意类使用或者重写,因为任何一个类都是object的继承类。
1.0 Equals 方法主要用于比较两个对象是否相等,如果相等则返回 True,否则返回 False。
2.0 GetHashCode,获取对象的哈希码。该方法返回的是当前Object的哈希代码,每个对象的哈希代码都是固定的,也就是说每个对象的哈希代码都是唯一的。
比如对一个对象进行了两次实例化,并且分别获取其哈希码,最后获取到的哈希码也是不一致的。GetHashCode方法不含有任何参数,并且不是静态方法,只能通过实例化来调用。任意对象都是可以调用该方法的,因为每个对象都有它的具体的哈希值。
3.0 GetType() 该方法用于获取对象type类型。例如int int1=12; 当调用了GetType方法之后,该对象的type类型就是System.Int32.。
该方法不含任何参数,任意对象都可以调用该方法获取type类型。
4.0 ToString() 返回对象实例的字符串。
任何类都可以重写Tostring方法,返回自定义的字符串。意思就是返回的就是命名空间名称.类的名称 。
对于其他类型,则会将其类型转换为字符串类型。
C#关键字
1.0 base关键字:解决派生类定义同名的成员覆盖基类已经定义好的成员的方法
就比如说基类里面有一个方法print,方法体里面定义了几个变量。派生类也定义了一个print方法,方法体里面页定义了几个变量。但是默认情况下,派生类中的方法print会覆盖掉基类的print方法,也就是说基类的方法print里面的变量是就相当于没有定义变量一样。但是当我们需要使用基类的方法里面的变量的时候,就要在基类的方法print中使用base.print调用基类的print方法。
所以用户在程序中会遇到 this 和 base 关键字,this 关键字代表的是当前类的对象,而 base 关键字代表的是父类中的对象。
2.0 virtual 关键字
在C#中,默认情况下类的成员都是非虚拟的,但是我们可以通过virtual关键字将类中的成员定义为虚拟的,表示这些虚拟的成员将会继承后进行重写。重写相当于就是继承里面的子类中定义了同名的成员,多的是在定义的成员前面加上override关键字,并且在父类中定义的成员前面加上virtual关键字。
virtual关键字可以修饰方法、属性、索引器以及事件等等。
既然涉及到重写,重写就是一个基于继承,然后用于子类重写父类中的成员,重写的关键字override。
个人理解就是子类中重写父类的成员,意思就是将父类的成员进行重新定义。但是重写是基于继承的,就是在子类中定义一个与父类同名的成员,然后子类中同名的成员将会覆盖掉父类中同名的成员。但一样是使用base关键字调用父类中同名的成员,这样就可以使得父类的成员一样可以在子类中得到复用。继承的主要目的就是可以使得代码复用,减少代码量。
3.0 abstract 关键字,用于声明抽象类或者抽象方法
abstract代表的是抽象的,可以修饰类和方法。修饰的方法称为抽象方法,修饰的类称为抽象类。
抽象方法:抽象方法是一种没有方法体的方法
抽象方法的定义:
访问修饰符 abstract 返回值类型 方法名称(参数列表);
需要注意的就是:抽象方法必须定义在抽象类里面。
抽象类:不能被实例化的,但是有存在构造器的类。
抽象类的定义:
访问修饰符 abstract class 类名{ 类的成员}
抽象类里面的方法,可以是抽象方法,也可以是非抽象方法。
通常抽象类的作用就是被其他类继承,然后重写其中的抽象方法或者重写其中的虚拟方法。
在实际应用中,子类仅能重写父类中的虚拟方法或者抽象方法,当不需要使用父类中方法的内容时,
将其定义成抽象方法,否则将方法定义成虚拟方法。
4.0 sealed 用于声明密封类或者密封方法
sealed 关键字的含义是密封的,可以修饰类或者方法,修饰的类称为密封类,修饰的方法称为密封方法。
密封类不能被继承,密封方法不能被重写。所以这就是sealed的作用,如果某些类或方法不希望被继承或重写,可以使用sealed修饰符。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值