继承多态接口ppt课件.ppt

上传人:飞****2 文档编号:29512237 上传时间:2022-07-31 格式:PPT 页数:20 大小:228.50KB
返回 下载 相关 举报
继承多态接口ppt课件.ppt_第1页
第1页 / 共20页
继承多态接口ppt课件.ppt_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《继承多态接口ppt课件.ppt》由会员分享,可在线阅读,更多相关《继承多态接口ppt课件.ppt(20页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 类的继承、多态和接口继承的出现(I)class Studentpublic int id = 3;public string name = Tom;public void SelfIntr() Console.WriteLine(id+: +name);class Pupilpublic int id = 3;public string name = Tom;public void SelfIntr()Console.WriteLine(id+“: +name);public void Game()Console.WriteLine(我喜欢玩皮球!我喜欢玩皮球!);新类比原类多了一个方法新类

2、比原类多了一个方法继承的出现(II)class Studentpublic int id=16;public string name =Tom;public void SelfIntr() Console.WriteLine(id+t+name);class Pupil : Studentpublic void Game() Console.WriteLine(我喜欢玩皮球!我喜欢玩皮球!);使用使用:继承原有继承原有类的内容,再类的内容,再另行添加新的另行添加新的内容,简化了内容,简化了代码的编写,代码的编写,这就是继承!这就是继承!父类、基类或超类子类或派生类继承的特点 不支持多重多重继承

3、,可以有多层多层继承 子类不继承父类的私有成员和构造方法 默认情况下,子类调用父类中无参构造方法 如果在父类中定义了带参构造方法,那么在创建子类对象时可能会出现错误 在子类构造方法的括号后面使用 :base()调用父类的构造方法访问控制修饰符(I)附:还有一种 protected internal 修饰符,可以在本类、派生类及所属文件(程序集)中访问修饰符说明public在程序的任何位置都可以访问protected只能在本类和子类中访问(见示例)internal在同一个程序集中可以访问private只能在本类中访问(默认)访问控制修饰符(II)class F public int a; int

4、ernal int b; protected internal int c; protected int m; private int n;class S1 : F a b c m n class T1 a b c m n class S2 : F a b c m n class T2 a b c m n 文件f1文件f2virtual 与 override 在父类中被允许重写的方法以 virtual 来修饰,子类中的同名方法用 override 来进行重写以实现多态 用 virtual 修饰的方法称为“虚方法”,它仅表示该方法可以被子类重写 virtual 不能与 private、overr

5、ide、abstract 和static 等修饰符同时使用 override不能与new、static、virtual同时使用见示例:见示例:父类对象指向子类对象空间 父类对象可以调用子类对象中继承的、且还未被隐藏(或重写)的成员 如果父类中的方法方法被子类用 override 所重写,那么父类将调用子类重写后的方法 如果在子类中用 new 创建了与父类同名的成员,那么父类将无法识别子类新创建的成员,而仍然调用本类原有的成员见示例:见示例:多态的应用 由于子类对父类的方法进行了重写,我们可以根据程序设计的需要通过父类对象去调用不同子类中的方法 创建一个父类对象的数组,数组的个数可以和子类的个数

6、相同,每个下标都对应一个子类对象,根据下标值的变化去调用子类对象所各自重写的方法父类对象强制转换为子类对象 当父类对象指向一个子类对象的空间时,虽然是父类对象在操纵这一空间,但该空间的实质还是子类的,因此,完全可以把这个父类对象强制转换成子类对象class Father public int num = 2;class Son : Father public int cnt = 9;static void Main() Father f = new Son(); /f/f是父类对象,不能操纵子类中的是父类对象,不能操纵子类中的cntcnt Console.Write(t);/将报错将报错 /

7、/将将f f强制转换后,就可以使用强制转换后,就可以使用cntcnt了了 Console.Write(Son)f).cnt);抽象类和抽象方法 使用 abstract 关键字来创建一个抽象类或是抽象方法 抽象类不能被实例化 不能创建抽象的构造方法 抽象方法没有具体功能实现 抽象方法由本类的子类去实现,子类中需要使用 override 关键字CTS根类型:Object C#中的任何类型都是从object类继承而来的,object 其实是 System.Object 的别名,System.Object 也是.NET 类库中所有类型的始祖,包括值类型和引用类型,都是直接或间接从 System.Obj

8、ect 继承而来的System.Object引用类型System.ValueType引用类型值类型接口:interface 如果一个类中的所有方法都没有被实现,那么这个类就可以被声明为 “接口” 接口中的成员都默认为 public,但不能使用 public C# 接口中不能声明成员变量(常量) 类也可以在继承父类的同时,实现多个接口,多个接口之间以“,”隔开 接口名习惯上以大写字母 I 开头见示例:见示例:接口的实际应用 接口提供了一个统一的标准,所有继承接口的类都必须要遵循这一标准 实现接口可以大大减轻程序开发的负担,提高了灵活性和扩展性 在接口的使用中,要清晰地掌握父类对象指向子类对象空间

9、这一点Convert 类 Convert 类中的所有方法都是静态的,其作用是要将一种基本数据类型转换成另一种数据类型 其中的以ToXXX为前缀的方法中,XXX指的是CTS类型的名称,如:int 为 Int32string 为 Stringfloat 为 SingleMath 类 Math 类静态的形式提供了进行数学运算的方法,如:Abs(value):求 value 的绝对值Ceiling(value):求大于或等于 value 的最小整数Flooring(value):求小于或等于 value 的最大整数Max(value1, value2):求两个数中的最大数Min(value1, val

10、ue2):求两个数中的最小数Pow(x, y):求 x 的 y 次幂Sqrt(value):求 value 的平方根PI:返回圆周率的值Random 类 Random 类中的方法可用于产生随机数,我们需要创建一个该类的对象调用其方法:Random rd = new Random();rd.Next():它返回一个小于2,147,483,647的非负数rd.Next(int value):它返回一个小于指定值value的非负数rd.Next(a, b):它返回一个介于 a 与 b 之间的随机数rd.NextDouble():返回一个介于 0.0 和 1.0 之间的随机数日期/时间类型 在C#中,

11、使用System.DateTime结构结构描述日期和时间 在DateTime结构中有静态静态属性Now用来表示系统当前的日期/时间,Today用来表示当前的日期 其它的非静态非静态属性有:Year-年 Month-月 Day-日 Hour-时 Minute-分 Second-秒Date-获取实例实例的日期部分DayOfYear-返回一年当中的第几天 DayOfWeek-星期几创建 DateTime 实例 构造方法的重载形式有:DateTime(int year, int month, int day)DateTime(year, month, day, hour, minute, second

12、)DateTime(年,月,日,时,分,秒,毫秒)DateTime(Int64):以1年1月1日的千万分之一秒为单位此外,还可以使用System.Globalization.Calendar类的对象作为DateTime构造方法的最后参数 static void Main(string args) Console.WriteLine(DateTime.Today);/输出当前的日期 Console.WriteLine(DateTime.Now); /DateTime dt = DateTime.Now;/将当前的日期/时间赋值给DateTime结构对象 DateTime dt = new DateTime(2008, 8, 8);/用指定的日期/时间创建DateTime结构对象 Console.WriteLine(dt.Year); Console.WriteLine(dt.Month); Console.WriteLine(dt.Date); Console.WriteLine(dt.Day); Console.WriteLine(dt.DayOfWeek); Console.WriteLine(dt.DayOfYear);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com