摘要: 由于可以继承基类的所有成员,子类就都有了相同的行为,但是有时子类的某些行为需要相互区别,子类需要覆写父类中的方法来实现子类特有的行为,这样 的技术在面向对象的编程中就是多态。 多态即相同类型的对象调用相同的方法却表现出不同行为的现象。 阅读全文
posted @ 2018-06-21 16:34 DonaldL.Shaw 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 使用了继承之后,当我们初始化一个子类时,除了会调用子类的构造函数外,同时也会调用基类的构造函数。子类的初始化顺序如下: ① 初始化类的实例字段; ② 调用基类的构造函数,如果没有指明基类,则调用System.Object的构造函数; ③ 调用子类的构造函数。 如下实例: 阅读全文
posted @ 2018-06-21 16:28 DonaldL.Shaw 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 密封类不可以被另外一个类继承,如果强行在代码中继承一个密封类,编译时就会产生错误。 c#使用sealed关键字来定义密封类,如下: 阅读全文
posted @ 2018-06-21 16:00 DonaldL.Shaw 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 在c#中,一个类可以继承另外一个已有的类(密封类除外),被继承的类称为基类(或父类),继承的类称为派生类(或子类),子类将获得基类 除构造函数和析构函数以外的所有成员。此外,静态类是密封的,也不能被继承。 例如,牛、羊、马等都是动物,但它们是不同种类的动物,除了具有动物的共同性外,它们还具有各自的特 阅读全文
posted @ 2018-06-21 15:52 DonaldL.Shaw 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 封装 指的是把类内部的数据隐藏起来,不让对象实例直接对其操作。c#中提供了属性机制来对类内部的状态进行操作。 在c#中,封装可以通过Public、Private、Protected和Internal等关键字来体现。 为什么要将类内部的数据封装起来?如下: 当把字段定义为公共类型时,外部对象可以对类内 阅读全文
posted @ 2018-06-21 15:13 DonaldL.Shaw 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 由于类与结构体在语法和使用上都非常类似,导致我们这些初学者容易混淆。为更好理解,特做以下区分记录: ① 语法上的区别在于,定义类要使用关键词class,而定义结构体则使用关键词struct。 ② 结构体中不可对声明字段进行初始化,但类可以。 ③ 如果没有为类显式地定义构造函数,c#编译器会自动生成一 阅读全文
posted @ 2018-06-21 14:14 DonaldL.Shaw 阅读(592) 评论(0) 推荐(0) 编辑