继承多态接口ppt课件.ppt

上传人:牧羊曲112 文档编号:1359063 上传时间:2022-11-13 格式:PPT 页数:20 大小:143KB
返回 下载 相关 举报
继承多态接口ppt课件.ppt_第1页
第1页 / 共20页
继承多态接口ppt课件.ppt_第2页
第2页 / 共20页
继承多态接口ppt课件.ppt_第3页
第3页 / 共20页
继承多态接口ppt课件.ppt_第4页
第4页 / 共20页
继承多态接口ppt课件.ppt_第5页
第5页 / 共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 修饰符,可以在本类、派生类及所属文件(程序集)中访问,访问控制修饰符(II),class F public int a; internal 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 ,clas

4、s T2 a b c m n ,文件f1,文件f2,virtual 与 override,在父类中被允许重写的方法以 virtual 来修饰,子类中的同名方法用 override 来进行重写以实现多态用 virtual 修饰的方法称为“虚方法”,它仅表示该方法可以被子类重写virtual 不能与 private、override、abstract 和static 等修饰符同时使用override不能与new、static、virtual同时使用见示例:,父类对象指向子类对象空间,父类对象可以调用子类对象中继承的、且还未被隐藏(或重写)的成员如果父类中的方法被子类用 override 所重写,那

5、么父类将调用子类重写后的方法如果在子类中用 new 创建了与父类同名的成员,那么父类将无法识别子类新创建的成员,而仍然调用本类原有的成员见示例:,多态的应用,由于子类对父类的方法进行了重写,我们可以根据程序设计的需要通过父类对象去调用不同子类中的方法创建一个父类对象的数组,数组的个数可以和子类的个数相同,每个下标都对应一个子类对象,根据下标值的变化去调用子类对象所各自重写的方法,父类对象强制转换为子类对象,当父类对象指向一个子类对象的空间时,虽然是父类对象在操纵这一空间,但该空间的实质还是子类的,因此,完全可以把这个父类对象强制转换成子类对象class Father public int nu

6、m = 2;class Son : Father public int cnt = 9;,static void Main() Father f = new Son(); /f是父类对象,不能操纵子类中的cnt Console.Write(t);/将报错 /将f强制转换后,就可以使用cnt了 Console.Write(Son)f).cnt);,抽象类和抽象方法,使用 abstract 关键字来创建一个抽象类或是抽象方法抽象类不能被实例化不能创建抽象的构造方法抽象方法没有具体功能实现抽象方法由本类的子类去实现,子类中需要使用 override 关键字,CTS根类型:Object,C#中的任何类

7、型都是从object类继承而来的,object 其实是 System.Object 的别名,System.Object 也是.NET 类库中所有类型的始祖,包括值类型和引用类型,都是直接或间接从 System.Object 继承而来的,接口:interface,如果一个类中的所有方法都没有被实现,那么这个类就可以被声明为 “接口”接口中的成员都默认为 public,但不能使用 publicC# 接口中不能声明成员变量(常量)类也可以在继承父类的同时,实现多个接口,多个接口之间以“,”隔开接口名习惯上以大写字母 I 开头见示例:,接口的实际应用,接口提供了一个统一的标准,所有继承接口的类都必须要

8、遵循这一标准实现接口可以大大减轻程序开发的负担,提高了灵活性和扩展性在接口的使用中,要清晰地掌握父类对象指向子类对象空间这一点,Convert 类,Convert 类中的所有方法都是静态的,其作用是要将一种基本数据类型转换成另一种数据类型其中的以ToXXX为前缀的方法中,XXX指的是CTS类型的名称,如:int 为 Int32string 为 Stringfloat 为 Single,Math 类,Math 类静态的形式提供了进行数学运算的方法,如:Abs(value):求 value 的绝对值Ceiling(value):求大于或等于 value 的最小整数Flooring(value):求

9、小于或等于 value 的最大整数Max(value1, value2):求两个数中的最大数Min(value1, value2):求两个数中的最小数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

10、与 b 之间的随机数rd.NextDouble():返回一个介于 0.0 和 1.0 之间的随机数,日期/时间类型,在C#中,使用System.DateTime结构描述日期和时间在DateTime结构中有静态属性Now用来表示系统当前的日期/时间,Today用来表示当前的日期其它的非静态属性有:Year-年 Month-月 Day-日 Hour-时 Minute-分 Second-秒Date-获取实例的日期部分DayOfYear-返回一年当中的第几天 DayOfWeek-星期几,创建 DateTime 实例,构造方法的重载形式有:DateTime(int year, int month, in

11、t day)DateTime(year, month, day, hour, minute, second)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); ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号