1. 首页
  2. 文档大全

类的重载和继承

上传者:7****0 2022-05-29 13:14:06上传 PPT文件 2.15MB
类的重载和继承_第1页 类的重载和继承_第2页 类的重载和继承_第3页

《类的重载和继承》由会员分享,可在线阅读,更多相关《类的重载和继承(13页珍藏版)》请在文档大全上搜索。

1、2022-5-261类与对象方法重载是让类以统一的方式处理不同类型数据的一种手段。在C#中,语法规定同一个类中两个或两个以上的方法可以用同一个名字,如果出现这种情况,那么该方法就被称为重载方法.当一个重载方法被调用时,C#回根据调用该方法的参数自动调用具体的方法来执行.l参数数目不同参数数目不同l参数数目相同,类型不同。参数数目相同,类型不同。l参数数目相同,类型相同,先后顺序不一样参数数目相同,类型相同,先后顺序不一样u返回值类型不能区别重载返回值类型不能区别重载 2022-5-262 static void Main(string args) Heavy hay = new Heavy()

2、; hay.Print(); hay.Print(123); hay.Print(12345); hay.Print(123, steven); hay.Print(123, a, b, c); Console.Read(); public void Print() Console.WriteLine(方?法执行D 无T参? ); public void Print(int num) Console.WriteLine(方?法执行D 整?型参?数簓); Console.WriteLine(num); public void Print(int num, string str) Console.

3、WriteLine(方?法执行D 整?型参?数簓+字?符?串?); Console.WriteLine(num); /使?用?数簓组哩类型作痢为a方?法的?参?数簓:阰关?键字?params只?能出?现?一?次?而?且是?出?现?在参?数簓中D的?最?后一?个? public void Print(int num, params string str) Console.WriteLine(方?法执行D 整?型参?数簓 + 数簓组哩类型); Console.WriteLine(num); for (int i = 0; i str.Length; i+) Console.WriteLine(st

4、ri); 2022-5-263用C#编写一个实现方法重载的程序。定义两个同名的方法,一个方法只接受整数参数a,整数参数b;另一个方法接受小数参数a,小数参数b,并且都返回a和 b次的和。2022-5-264 继承的意思是一个类可以建立在另一个类的基础上,可以继承另一个类的属性和方法。我们把被继承的类叫做基类,通过继承产生的类叫做派生类(也可以叫做父类和子类)。继承的概念来源与现实的生活,比如汽车、轮船、火车飞机等就是继承于交通工具这个类,而汽车类中又可以派生出新的类,比如轿车、面包车等等。 引入继承可以让我们重用以前写过的代码,新编写的代码可以在原来的基础上继承而来。 在C#中继承的方式就是定

5、义派生类。 在C#中,所有的类都是通过直接或间接地继承Object类得到的。定义派生类的基本形式:class 派生类名字:基类名字 派生类的代码;public class Parent public Parent( ) .定义一个构造函数 public void WriteItem( ) .定义方法 public class Child:Parent public Child( ) . 派生类的构造函数 public static void Main( ) Child a=new Child( ); a.WriteItem( ); 派生类使用基类的方法基类的构造函数先执行再执行派生类的构造函数

6、。1、域的继承:子类可以继承父类的所有成员。2、域的添加:在子类定义中加上新的域变量,就可以使得子类具有比父类多的属性。如: class Student: Person string school; int score; 子类比父类多了两个成员: school、score。3、域的隐藏:子类重新定义一个从父类中继承的域变量。 class A public int a; class B:A new public int a;使用new修饰符来隐藏父类的同名成员a。1、方法的继承:子类可以继承父类的所有方法。2、方法的添加:在子类定义中加上新的方法,以针对子类实现相应的功能。比如可以在Studen

7、t类中定义分数的判断方法。 3、方法的覆盖:子类定义与父类同名的方法。(多态之一) (1)定义同名但参数列表不同的方法,称为方法的重载; (2)定义同名且参数列表也相同的方法,称为新增,这时应 该在同名方法前面用new修饰符; (3)定义同名且参数列表也相同的方法,并且父类中的方法用abstract/virtual进行修饰,子类中的方法用override进行了修饰,称为虚方法的覆盖。class parent public int add( int x,int y ) return(x+y); class child:parent public int add(int x,int y ,int

8、z) return(x+y+z); public static void Main( ) child c1=new child( ); c1.add(1,2,3); c1.add(4,5); 分别使用了自己和父类的方法。class parent public int add( int x,int y ) return(x+y); class child:parent new public int add(int x,int y) return(x+y+10); public static void Main( ) child c1=new child( ); c1.add(4,5); 使用了自

9、己的方法。class one public void x( ) Console.WriteLine(“one_x”); public virtual void y( ) Console.WriteLine(“one_y”); class two:one new public void x( )/隐藏父类中的同名方法 Console.WriteLine(“two_x”); public override void y( )/重写同名方法 Console.WriteLine(“two_y”);class test public static void Main( ) two m2=new m2()

10、; one m1=m2;/m1指向m2实例 m1.x(); m2.x(); m1.y( ); m2.y(); 结果:one_x two_x two_y two_yclass one public void x( ) Console.WriteLine(“one_x”); public virtual void y( ) Console.WriteLine(“one_y”); class two:one new public void x( )/隐藏父类中的同名方法 Console.WriteLine(“two_x”); public override void y( )/重写同名方法 Console.WriteLine(“two_y”);class test public static void Main( ) two m2=new m2(); one m1=m2;/m1指向m2实例 m1.x(); m2.x(); m1.y( ); m2.y(); 结果:one_x two_x two_y two_y2022-5-2613主函数定义父类定义子类


文档来源:https://www.renrendoc.com/paper/212486951.html

文档标签:

下载地址