C复习材料范文_第1页
C复习材料范文_第2页
C复习材料范文_第3页
C复习材料范文_第4页
C复习材料范文_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C C复习材料范文复习材料范文 1 chap0805DynamicPolymorphism cs 素食动物 using System namespace Ch08 Book namespace Pro1 1start class Animal 非abstract 非virtual 非override方法 不能在子 类中重写 不会表现多态行为public void FoodHabits Console WriteLine Animal eatsomething 非虚方法 非抽象方法 父类中非override 方法不能被重写 class Carnivorous Animal public newvoid FoodHabits 方法隐藏 new省略会编译报警Console WriteLine The Carnivorousanimals eatonly meat class Herbivorous Animal public newvoid FoodHabits 方法隐藏 new省略会编译报警Console WriteLine The Herbivorousanimals eatonly plants public class Implement public static void Main 父类引用 指向 子类对象 Animal a new Carnivorous Animal a hb new Herbivorous a FoodHabits a hb FoodHabits Carnivorous new Carnivorous Herbivorous hb new Herbivorous FoodHabits hb FoodHabits 1end namespace Pro2 抽象类 不能实例化 抽象类的用途是提供多个派生类可共享的基类的公共定义 例如 类库可以定义一个作为其多个函数的参数的抽象类 并 要求程序员使用该库通过创建派生类来提供自己的类实现 2start abstract class Animal 抽象类public abstractvoid FoodHabits 抽象方法 必须放在抽象类中 抽象方法 没有实现 所以方法定义后面是分号 而没有常规的方法块 抽象类之间可以继承 抽象类要求其子类都继承其抽象方法 若其子类不是抽象类 则子类中必须重写 实现 抽象方法 在子类中必须重写抽象方法 才能通过编译 当抽象类从基 类继承虚方法时 抽象类可以使用抽象方法重写该虚方法 父类D virtual abstract override 抽象子类E 参考例子 07 cs 关于访问限制修饰 符 重写方法时 不可以改变方法的访问权限 可以推知 抽象 方法一定不能为private的 为什么 重写抽象方法 可以实现多 态 class Carnivorous Animal public overridevoid FoodHabits 方法重写Console WriteLine The Carnivorousanimals eatonly meat class Herbivorous Animal public overridevoid FoodHabits 方法重写Console WriteLine The Herbivorousanimals eatonly plants public classImplement public static void Test 父类引用 指向 子类对象 Animal a new Carnivorous Animal a hb new Herbivorous a FoodHabits a hb FoodHabits Carnivorous new Carnivorous Herbivorous hb new Herbivorous FoodHabits hb FoodHabits 2end namespace Pro3 3start 虚函数 虚方法 必须有定义体 既可以放具体类中 也可以放 抽象类中 子类中 可以重写它 也可以隐藏它 如果既没有重写也没 有隐藏 则它会被继承 一个方法声明时不可以同时使用abstr act和virtual 关于访问限制修饰符 重写方法时 不可以改变方法的访问权限 可以推知 与抽象方法类似 虚方法一定不能为private的 重写虚函数 可以实现多态abstract classAnimal 具体类或抽象类均可 虚函数 虚方法 必须有定 义体 public virtualvoid FoodHabits Console WriteLine Animals havedifferent foodhabits class Carnivorous Animal public overridevoid FoodHabits 方法重写Console WriteLine The Carnivorousanimals eatonly meat class Herbivorous Animal public overridevoid FoodHabits 方法重写Console WriteLine The Herbivorousanimals eatonly plants public classImplement public static void Test Animal是抽象类时不能创建实例a 但去掉Animal声明 前面的abstract却可以 Animal a new Animal a FoodHabits 父类引用 指向 子类对象 Animal a new Carnivorous Animal a hb new Herbivorous a FoodHabits a hb FoodHabits Carnivorous new Carnivorous Herbivorous hb new Herbivorous FoodHabits hb FoodHabits 3end namespace Pro4 4start 含虚函数的父类的引用作为参数 传递给其他函数XX时 若在该虚函数所在类的子类中重写了该虚函 数 则在对函数XX的调用执行中 会体现多态行为 重写虚函 数 可以实现多态classAnimal 具体类或抽象类均可public virtualvoid FoodHabits Console WriteLine Animals havedifferent foodhabits class Carnivorous Animal public overridevoid FoodHabits 方法重写Console WriteLine The Carnivorousanimals eatonly meat class Herbivorous Animal public overridevoidFoodHabits 方法重写Console WriteLine The Herbivorousanimals eatonly plants classImplement public voidcallFunction Animal cr cr FoodHabits FoodHabit 是Animal类中的虚函数 根 据传递过来的实参cr 体现多态行为 public classClassMain public static void Test Implement imp new Implement 父类引用 指向 子类对象 Animal a new Carnivorous Animal a hb new Herbivorous a 和a hb都Animal类 类型的 引用 变量 但指向的是堆中不同子类的对象 imp callFun ction a 体现多态行为imp callFunction a hb 体现多态行 为 a FoodHabits a hb FoodHabits Carnivorous new Carnivorous Herbivorous hb new Herbivorous imp callFunction 体现多态行为imp callFunc tion hb 体现多态行为 FoodHabits hb FoodHabits 4end 命名空间Ch08 Book定义结束2 接口与抽象类的对比chap706TestBinOperator cs Created bySharpDevelop User Administrator Date xx 10 23 Time 17 22 To changethis templateuse Tools Options Coding Edit StandardHeaders using System namespace Ch07 Book BinaryOverload class Calculator public int number public Calculator number 0 public Calculator intn number n public staticCalculator operator Calculator c1 Calculator c2 Calculator c3 new Calculator 0 c3 number c1 number c2 number return c3 public overridestring ToString return nnumber number public classTestBinOperator public staticvoid Main Calculator num1 new Calculator 100 Calculator num2 new Calculator 49 Calculator num3 new Calculator num3 num1 num2 Console WriteLine num1 num2 num3 Console WriteLine num1 num2 num3 Console WriteLine 3 接口与抽象类的对比08FunctionCall cs using System namespace Ch07 Book class Fa public virtualvoid At Console WriteLine Father 方法At 在运行 public virtualvoid Bt Console WriteLine Father 方法Bt 在运行 At Consol e WriteLine Father 方法Bt 停止了 class Son Fa public overridevoid At Console WriteLine Son 方法At 在运行 public overridevoid Bt Console WriteLine Son 方法Bt 在运行 base Bt Cons ole WriteLine Son 方法Bt 停止了 public classFunctionCall public staticvoid Main Fa s new Son s Bt 4 code chap1114 4 SyncTest cs using System using System Threading namespace Ch11 SyncStack public classSyncTest public staticvoid Main MyStack stack new MyStack 共享栈stack Producer p1 new Producer stack Thread prod1 new Thread p1 RunThread prod1 Name 生产者号 prod1 Start Pr oducer p2 new Producer stack Thread prod2 new Thread p2 RunThread prod2 Name 生产者号 prod2 Start Co nsumer s1 new Consumer stack Thread cons1 new Thread s1 RunThread cons1 Name 消费者号 cons1 Start Co nsumer s2 new Consumer stack Thread cons2 new Thread s2 RunThread cons2 Name 消费者号 cons2 Start Test方法结束 类SyncTest定义结束 命名空间Ch11 SyncStack 结束 下面是一种可能的输出 生产者号生产了 K 生产者号 生产了 K 消费者号消费了 K 消费者号消费了 K 生产者号生产 了 N 生产者号生产了 N 消费者号消费了 N 消费者号消费了 N 生产者号生产了 L 消费者号消费了 L 生产者号生产了 L 消费 者号消费了 L 生产者号生产了 I 消费者号消费了 I 生产者号 生产了 I 生产者号生产了 L 生产者号生产了 L 生产者号生产 了 J 消费者号消费了 J 生产者号生产了 J 生产者号生产了 K 生产者号生产了 K 消费者

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论