继承与多型.PPT

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
继承与多型

繼承與多型 (Inheritance and Polymorphism) 鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所 綱要 繼承 修飾語protected 限制繼承 繼承架構下的建構函式呼叫 OCP:開放-封閉原理 多型 覆寫與隱藏 二十一點模擬程式0.1版 綱要 預設類別System.Object LSP: Liskov替代性原理 抽象類別 DIP: 依存性反轉原理 介面 ISP: 介面分離原理 多重介面 *多重介面鑄形 綱要 繼承 修飾語protected 限制繼承 繼承架構下的建構函式呼叫 OCP:開放-封閉原理 多型 覆寫與隱藏 二十一點模擬程式0.1版 UsingInheritance.Calculator 片段 public int Add(int a, int b) { int result = a + b; return result; } public int Subtract(int a, int b) { int result = a - b; return result; } public int Multiply(int a, int b) { int result = a * b; return result; } UsingInheritance. Program.Main 片段(1/2) switch (op) { case ‘+’: result = AdvancedCalculator.Add(operand1,operand2); Console.WriteLine({0} + {1} = {2} , operand1, operand2, result); break; . . . UsingInheritance. Program.Main 片段(2/2) case ‘^’: result = AdvancedCalculator.Power(operand1,operand2); Console.WriteLine( {0} ^ {1} = {2}, operand1, operand2, result); break; . . . } UsingInheritance.AdvancedCalculator 片段 class AdvancedCalculator : Calculator { public static int Power(int a, int b) { int result = (int)Math.Pow(a, b); return result; } } 表示繼承的UML類別圖 類別繼承之階層關係 class A { private int data1; private int data2; //…other members are methods } class B : A { private int data3; //…other members are methods } class C : B { private int data1; private int data4; //…other members are methods } 物件記憶體分配模型 DataMemberInheritance.A class A { private int data1; private int data2; public A() { data1 = 1; data2 = 2; } public void GetAData(out int data1, out int data2) { data1 = this.data1; data2 = this.data2; } } DataMemberInheritance.B class B : A { private int data3; public B() { data3 = 3; } public void GetBData(out int data3) { data3 = this.data3; } } DataMemberInheritance.C class C : B { private int data1; private int data4; public C() { data1 = 5; data4 = 4; } public void GetCData(out int data1, out int data

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档