![第7章继承和接口设计习题_第1页](http://file4.renrendoc.com/view/b823a15a7ba98a4916231f8e4caa1573/b823a15a7ba98a4916231f8e4caa15731.gif)
![第7章继承和接口设计习题_第2页](http://file4.renrendoc.com/view/b823a15a7ba98a4916231f8e4caa1573/b823a15a7ba98a4916231f8e4caa15732.gif)
![第7章继承和接口设计习题_第3页](http://file4.renrendoc.com/view/b823a15a7ba98a4916231f8e4caa1573/b823a15a7ba98a4916231f8e4caa15733.gif)
![第7章继承和接口设计习题_第4页](http://file4.renrendoc.com/view/b823a15a7ba98a4916231f8e4caa1573/b823a15a7ba98a4916231f8e4caa15734.gif)
![第7章继承和接口设计习题_第5页](http://file4.renrendoc.com/view/b823a15a7ba98a4916231f8e4caa1573/b823a15a7ba98a4916231f8e4caa15735.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、. .PAGE20 / NUMPAGES20第7章 继承和接口设计一选择题1在C#中,一个类 。A) 可以继承多个类B) 可以实现多个接口C) 在一个程序中只能有一个子类D) 只能实现一个接口2 关键字用于在C#中从派生类中访问基类的成员。A) newB) superC) thisD) base3在定义类时,若希望类的某个方法能够在派生类中进一步改进,以满足派生类的不同需要,则应将该方法声明为 。A) newB) publicC) virtualD) override4在C#中,在派生类中对基类的虚方法进行重写,要求在派生类的声明中使用 。A) newB) publicC) virtualD)
2、 override5已知类B是由类A继承而来,类A中有一个名为M的非虚方法,现在希望在类B中也定义一个名为M的方法,且两方法的参数个数和类型完全一样,若希望编译时不出现警告信息,则在类B中声明该方法时,应使用 关键字。A) staticB) newC) overrideD) virtual6假设类B继承了类A,下列说法错误的是 。A) 类B中的成员可以访问类A中的公有成员B) 类B中的成员可以访问类A中的保护成员C) 类B中的成员可以访问类A中的私有成员D) 类B中的成员可以访问类A中的静态成员7关于多态,下列说确的是 。A) 多态实际上就是重载,它们本质上是以一样的B) 多态可以分为编译时多
3、态和运行时多态。前者的特点是在编译时就能确定要调用成员方法的哪个版本,后者则是在程序运行时才能确定要调用成员方法的哪个版本。C) 编译时多态是在程序运行时才能确定要调用成员方法的哪个版本,而运行时多态在编译时就能确定要调用成员方法的哪个版本。D) 多态和重载是两个完全不同的概念,前者是通过定义虚方法和重写虚方法来实现,后者是通过对同一函数名编写多个不同的实现代码来实现。8下列关于接口的说法,正确的是 。A) 接口中定义的方法都必须是虚方法B) 接口中定义的方法可以编写其实现代码C) 继承接口的类可提供被继承接口中部分成员的实现代码D) 接口中的所有方法都必须在其派生类中得到实现。9下列关于虚方
4、法的描述中,正确的是 。A) 虚方法能在程序执行时动态确定要调用的方法,因此比非虚方法更灵活B) 在定义虚方法时,基类和派生类的方法定义语句中都要带上virtual修饰符C) 在重写基类的虚方法时,为消除隐藏基类成员的警告,需要带上new修饰符D) 在重写基类的虚方法时,需要同时带上virtual和override修饰符10在C#中,以下关于抽象类的叙述中错误的是 。A) 抽象类可以包含抽象方法B) 含有抽象方法的类一定是抽象类C) 抽象类不能被实例化D) 抽象类可以是密封类11在C#中,以下关于抽象类和接口的叙述中正确的是 。A) 抽象类可以包含非抽象方法,而接口不包含任何方法的实现B) 抽
5、象类可以被实例化,而接口不能被实例化C) 抽象类不能被实例化,而接口可以被实例化D) 抽象类能够被继承,而接口不能被继承12在C#中,以下关于抽象类和接口的叙述中正确的是 。A) 在抽象类中,所有的方法都是抽象方法B) 继承自抽象类的子类必须实现其父类(抽象类)中的所有抽象方法C) 在接口的定义中可以有方法实现,在抽象类的定义中不能有方法实现D) 一个类可以从多个接口继承,也可以从多个抽象类继承13以下类和接口的区别中正确的是 。A) 类可以继承而接口不可以B) 类不可以继承而接口可以C) 类可以多继承而接口不可以D) 类不可以多继承而接口可以14下列方法定义中, 是抽象方法。A) stati
6、c void func() B) virtual void func() C) abstract void func() D) overridel void func() 15下列关于接口的说法,错误的是 。A) 一个类可以有多个基类和多个基接口B) 抽象类和接口都不能被实例化C) 抽象类自身可以定义成员,而接口不可以D) 类不可以多重继承,而接口可以。16已知类Base、Derived的定义如下:class Base public void Hello() System.Console.Write(“Hello in Base!”); class Derived: Basepublic ne
7、w void Hello() System.Console.Write(“Hello in Derived!”); 则下列语句段在控制台中的输出结果是 。Derived x=new Derived(); x.Hello();A) Hello in Base!B) Hello in Base! Hello in Derived!C) Hello in Derived!D) Hello in Derived!Hello in Base!17关于继承,下列说确的是 。A) 子类将继承父类所有的成员B) 子类将继承父类的非私有成员C) 子类只继承父类public成员D) 子类只继承父类的方法,而不继承
8、属性18下列是抽象类的声明的是 。A) abstract class figure B) class abstract figure C) seald class figure D) static class figure19abstract修饰的方法是抽象方法,抽象方法只有声明而无主体,且 。A) 只能存在于抽象类中B) 可以在任何类中C) 只能在接口中D) 只能在密封类中20重写一个基类的虚方法时,应与原虚方法的方法名一样,并且 。A) 不能改变方法的参数类型、个数和返回值B) 可以改变方法的参数类型、个数和返回值C) 可以改变方法的返回值D) 可以改变方法的参数类型和个数21下面有关继承
9、的说法中,正确的是 。A) A类和B类均有C类需要的成员,因此可以从A类和B类共同派生出C类B) 在派生新类时,可以指明是公有派生、私有派生或保护派生C) 派生类可以继承基类中的成员,同时也继承基类的父类中的成员D) 在派生类中,不能添加新的成员,只能继承基类的成员22为了防止从所修饰的类派生出其他类,可以将此类定义为 。A) 抽象类B) 密封类C) 静态类D) 私有类23若想从派生类中访问基类的成员,可以使用 。A) this关键字B) me关键字C) base关键字D) override关键字24下面有关派生类的描述中,不正确的是 。A) 派生类可以继承基类的构造函数B) 派生类可以隐藏和
10、重载基类的成员C) 派生类不能访问基类的私有成员D) 派生类只能有一个直接基类25C#中的多态不能通过 实现。A) 接口B) 抽象类C) 密封类D) 虚方法26下列程序错误的原因是 。sealed class SealedClassclass Derived:SealedClassA) SealedClass类不能被继承B) 没有Main()入口C) SealedClass没有被实例化D) 以上皆是27下面关于接口的叙述中,不正确的是 。A) 接口只是由方法、属性、索引器或事件组成的框架,并没有描述任何对象的实例代码B) 接口的所有成员都被自动定义为公有的,不可使用访问修饰符来定义接口成员C)
11、 类可以通过在类型定义语句中包括冒号和接口名来表明它正在实现接口D) 一个类只能实现一个接口28接口可以包含一个或多个成员,以下选项中 不能包含在接口中。A) 方法B) 属性C) 事件D) 常量29下列叙述中,正确的是 。A) 接口中可以有虚方法B) 一个类可以实现多个接口C) 接口能被实例化D) 接口中可以包含已实现的方法30. 关于虚方法实现多态,下列说法错误的是。A) 定义虚方法使用关键字virtual B) 关键字virtual可以与override一起使用C) 虚方法是实现多态的一种应用形式 D) 派生类是实现多态的一种应用形式31. 以下类MyClass的定义中,是合法的抽象类。A
12、) abstract class MyClass public abstract int getCount(); B) abstract class MyClass public virtual abstract int getCount(); C) abstract class MyClass private abstract int getCount(); D) abstract class MyClass public static abstract int getCount(); 32. 分析下列程序中类MyClass的定义class BaseClasspublic int i;cla
13、ss MyClass:BaseClasspublic new int i;则下列语句在Console 上的输出为。MyClass y = new MyClass();BaseClass x = y;x.i = 100;Console.WriteLine(0, 1,x.i,y.i);A) 0, 0B) 100, 100C) 0, 100D) 100, 033. 在C#程序中定义如下IPlay接口,实现此接口代码正确的是 。interface IPlay void Play();void Show();A) class Teacher :Iplay void Play() /省略部分代码 void
14、 Show0 /省略部分代码B) class Teacher :Iplay public string Play() /省略部分代码 public void Show0 /省略部分代码C) class Teacher :Iplay public void Play() /省略部分代码 public void Show0 /省略部分代码D) class Teacher :Iplay public void Play();public void Show0 /省略部分代码 34. 以下泛型集合声明中正确的是 。A) List f=new List(); B) List f=new List ();
15、 C) List f=new List (); D) List f=new List; 34. 以下关于泛型的叙述中错误的是 。A) 泛型是通过参数化类型来实现在同一份代码上操作多种数据类型B) 泛型编程是一种编程式,其特点是参数化类型,C) 泛型类型和普通类型的区别在于泛型类型与一组类型参数或类型变量关联D) 以上都不对二填空题1在C#中有两种多态性:编译时的多态性和运行时的多态性。编译时的多态性是通过虚方法和重写虚方法 实现的,运行时的多态性是通过继承和重载/隐藏 来实现的。2在声明类时,在类名前使用abstract修饰符,则声明的类只能作为其他类的基类,不能被实例化。3在声明类时,在类名
16、前使用 sealed 修饰符,则声明的类不能作为其他类的基类,不能再派生新的类。4. 下列程序的运行结果是AB。考察类的继承(构造函数是先基类的先构造,析构函数是子类先析构)class Apublic A( )Console.WriteLine(A);class B:Apublic B()Console.WriteLine(B);class Programpublic static void Main()B b = new B();Console.ReadLine();5. 分析下列程序的运行结果是 。考察类的继承中base的使用class Apublic int x=100;class B:
17、Anew public int x;public B(int y, int z) x=y;base.x=z; public int getx1() return base.x; public int getx2() return x; class Program public static void Main() B b = new B(3, 6); int n = b.getx1(); int m = b.getx2();Console.WriteLine(m=0,n=1, m, n); m=3,n=66. 分析下列程序的运行结果是 。考察类的继承(隐藏和重写)abstract class
18、BaseClasspublic void MethodA() Console.WriteLine(BaseClass.MethodA); public virtual void MethodB() Console.WriteLine(BaseClass.MethodB); class Class1 : BaseClass new public void MethodA() Console.WriteLine(Class1.MethodA); public override void MethodB() Console.WriteLine(Class1.MethodB); class Class
19、2 : Class1 new public void MethodB() Console.WriteLine(Class2.MethodB); class MainClass public static void Main(string args) Class2 a = new Class2(); a.MethodA(); a.MethodB(); Console.Read(); Class1.MethodAClass2.MethodB7下列程序的运行结果是AA CC DD DD 。考察类的继承(隐藏和重写)class A public void F1() Console.Write(AA )
20、; public virtual void F2() Console.Write(BB ); class B : Anew public void F1() Console.Write(CC ); public override void F2() Console.Write(DD ); class Test static void Main() B b = new B(); A a = b; a.F1(); b.F1(); a.F2(); b.F2(); Console.Read();8. 阅读下列程序,程序的输出结果是 。考察类的继承public class A private int s
21、peed =10; public int Speed get return speed; set speed = value; Console.WriteLine(禁止驶入!); public class B:A public B() if(this.Speed=20) Console.Write (机动车); else Console.Write (非机动车); class Program public static void Main() B b=new B(); b.Speed = 30; 非机动车禁止驶入!9. 阅读下列程序,程序的输出结果是 。考察类的继承public class P
22、ersonprivate int age = 0; public int Age get return age; set if(value=18) Console.Write(成年人); else Console.Write(未成年人); age = value; public class People : Person public People(int age) Age = age; Console.WriteLine(不得入); class Program public static void Main() People b = new People (25); Console .Wri
23、teLine(你的年龄是:0,b.Age); Console.Read(); 成年人不得入你的年龄是:2510. 阅读下列程序,程序的输出结果是 。考察接口的映射interface IA void Hello(); class Base:IA public void Hello() Console.WriteLine(Hello in Base!); class Derived:Base new public void Hello() Console.WriteLine(Hello in Derived!); class Program public static void Main() Ba
24、se b=new Base(); Derived d=new Derived (); IA x;b.Hello();d.Hello(); x=b;x.Hello();x=d;x.Hello(); Console.Read();Hello in Base!Hello in Derived!Hello in Base!Hello in Base!11.阅读下列程序,程序的输出结果是。考察接口的映射interface IA void Hello(); class Base:IA public void Hello() Console.WriteLine(Hello in Base!); class
25、Derived:IA new public void Hello() Console.WriteLine(Hello in Derived!); class Program public static void Main() Base b=new Base(); Derived d=new Derived ();IA x;x=b; x.Hello();x=d; x.Hello();Console.Read();Hello in Base!Hello in Derived!12. 阅读下列程序,程序的输出结果是 。考察接口的映射interface Ia /接口Ia声明 double fun1()
26、; /接口成员声明 int fun2(); /接口成员声明 class A /声明基类A public int fun2() /隐式实现接口成员fun2 return 2; class B : A, Ia /类B从基类A和接口继承 double x; public B(double y) /构造函数 x = y; public double fun1() /隐式实现接口成员fun1 return x; class Program static void Main(string args) B b = new B(2.5); Console.WriteLine(0 , b.fun1(); Con
27、sole.WriteLine(0 , b.fun2(); Console.Read(); 2.5212.阅读下列程序,程序的输出结果是。考察类的实现与泛型class Stack /声明栈泛型类 int maxsize;/栈中元素最多个数 T data;/存放栈中T类型的元素 int top;/栈顶指针 public Stack()/构造函数 maxsize = 10; data = new Tmaxsize; top = -1; public Stack(int n)/重载构造函数 maxsize = n; data = new Tmaxsize; top = -1; public bool
28、StackEmpty()/判断栈空方法 return top = -1; public bool Push(T e) /元素e进栈方法 if (top = maxsize - 1)return false; top+; datatop = e; return true; public bool Pop(ref T e)/元素出栈方法 if (top = -1)return false; e = datatop; top-;return true; class Program static void Main(string args) int e = 0; Stack s = new Stack
29、(); /定义整数栈 s.Push(1);s.Push(3); s.Push(2); Console.Write(整数栈出栈次序:); while (!s.StackEmpty() /栈不空时出栈元素 s.Pop(ref e); Console.Write(0 , e); Console.WriteLine(); string e1 = ; Stack s1 = new Stack(); /定义字符串栈 s1.Push(Mary);s1.Push(John); s1.Push(Simth); Console.Write(字符串栈出栈次序:); while (!s1.StackEmpty()/栈
30、不空时出栈元素 s1.Pop(ref e1); Console.Write(0 , e1); Console.ReadLine(); 整数栈出栈次序:2 3 1字符串栈出栈次序:Simth John Mary三改错题(说明:下列程序中部分下划线的代码有错误,请将有错误的部分改正过来,并说明原因)1class Apublic A(int x) class B:Apublic B(int x) 答:“public B(int x) ”应改为“public B(int x):base(x) ”。因为基类A中没有无参数的构造函数。2class Avoid A() private A(int x) pr
31、ivate A(int y) 答:“void A() ”应改为“A()”,因为构造函数不能带任何返回类型修饰符。“private A(int x) ”和“private A(int y) ”实际上是同一个构造函数,应删除其中一个。3interface Iint x;public void f(int x);void g(int x);int h(int x) return 1; class A:Ipublic void f(int x) public int h(int x) 答:“int x;”应予以删除,因为接口中不允许存在成员变量。“public void f(int x);”中的修饰符
32、“public”应予以删除,因为接口的方法前不允许存在任何修饰符;“int h(int x) return 1; ” 应改为“int h(int x);”,因为不能在接口声明的函数中编写实现代码;应该在类A中添加函数“void g(int x);”的实现代码。4class A class B class C: A, B答:必须将“class C:A,B”中的“A”或“B”其中之一去掉,因为C#中不允许类进行多重继承。5class Aprotected static void f() protected void g() class B:Anew public static void f() n
33、ew public void g() public void h() base.f();base.g();f(); g();答:“base.f();”应改为“A.f();”,原因是类A中的方法“f()”是静态方法,它不能被实例化,只能通过类名来访问。四问答题1什么是类的继承?怎样定义派生类?继承是指一个类可以继承另一个类中的相关成员,被继承的类称为基类、超类或父类,继承而形成的类称为派生类或子类利用继承机制,新的类可以从已有的类中派生。那些用于派生的类称为这些特别派生出的类的“基类”2简述创建派生类时,构造函数的调用。先创建基类的构造函数,在创建自己的构造函数3怎样定义基类虚方法,并在派生类中
34、重写基类虚方法?virtual方法名(参数列表) 语句序列 override 方法名(参数列表) 语句序列 4抽象方法和虚方法有什么异同?抽象方法是只有定义、没有实际方法体的函数,它只能在抽象函数中出现,并且在子类中必须重写;虚方法则有自己的函数体,已经提供了函数实现,但是允许在子类中重写或覆盖。 重写的子类虚函数就是被覆盖了。5什么是抽象类?它有什么特点?它和接口有何异同?在方法声明中使用abstract修饰符的方法即为抽象方法。6什么是方法重载?重载的方法有何特点?是多态性的表达 方法名一样,但是参数类型和个数不同五编程题1. 编写一个控制台应用程序项目,实现学生和教师数据输入和显示功能。
35、学生类Student有编号、班号和成绩等字段,教师类有编号、职称和部门等字段。要求将编号、输入和显示设计成一个类Person,并作为Student和Teacher的基类。需用相关数据进行测试。 public class Person /人类 private int no; /编号 private string name; / public void input() Console.Write( 编号:); no = int.Parse(Console.ReadLine(); Console.Write( :); name = Console.ReadLine(); public void di
36、sp() Console.WriteLine( 编号:0,no); Console.WriteLine( :0,name); public class Student : Person /学生类 private string sclass; /班号 private int degree; /成绩 public void input() base.input(); Console.Write( 班号:); sclass = Console.ReadLine(); Console.Write( 成绩:); degree = int.Parse(Console.ReadLine(); new pub
37、lic void disp() base.disp(); Console.WriteLine( 班号:0,sclass); Console.WriteLine( 成绩:0,degree); public class Teacher : Person /教师类 private string prof; /职称 private string depart; /部门 public void input() base.input(); Console.Write( 职称:); prof = Console.ReadLine(); Console.Write( 部门:); depart = Consol
38、e.ReadLine(); new public void disp() base.disp(); Console.WriteLine( 职称:0, prof); Console.WriteLine( 部门:0, depart); class Program static void Main(string args) Student s1 = new Student(); Teacher t1 = new Teacher(); Console.WriteLine(输入一个学生数据:); s1.input(); Console.WriteLine(输入一个教师数据:); t1.input();
39、Console.WriteLine(显示一个学生数据:); s1.disp(); Console.WriteLine(显示一个教师数据:); t1.disp(); 2. 设计一个控制台应用程序项目b,设计一个普通职工类Employee,其工资为基本工资(1000)加上工龄工资(每年增加30元)。从Employee类派生出一个本科生类UEmployee,其工资为普通职工算法的1.5倍。并用相关数据进行测试,测试效果图如下图所示。控制台应用程序项目b的执行结果public class Employee /普通职工类 private double bsalary= 1000; /基本工资 priva
40、te double psalary; /实际工资 private int n; /工作年数 public int pn get return n; set n = value; public double compsalary() /计算普通员工工资 Console.Write(工作年数:); pn = int.Parse(Console.ReadLine(); psalary = bsalary+30*pn; return psalary; public class UEmployee : Employee /本科生职工类 new public double compsalary() ret
41、urn 1.5 * base psalary(); class Program static void Main(string args) Console.WriteLine(普通职工:); Employee emp1 = new Employee(); Console.WriteLine(该普通职工工资:0, emp1 psalary(); Console.WriteLine(本科生职工:); UEmployee emp2 = new UEmployee(); Console.WriteLine(该本科生职工工资:0, emp2 psalary(); 说明:本题需采用继承方法,用虚函数等均可
42、。3定义一个Shape抽象类,在该类中定义两个抽象方法GetArea和GetPerim。然后以Shape抽象类作为基类派生出Rectangle和Circle类,在这两个类中分别对GetArea和GetPerim方法进行重写,实现求特定形状的面积和周长。抽象类方法实现public abstract class Shape public abstract double GetArea(); public abstract double GetPerim(); class Rectangle : Shape/派生出来的Rectangle类 private double Width;/矩形的宽度 pr
43、ivate double Length; /矩形的长度 public Rectangle(double a, double b) /构造函数 Width = a; Length = b; public override double GetArea() /重载的求面积方法 return (Width * Length); public override double GetPerim() /重载的求周长方法 return (2 * (Length + Width); class Circle : Shape /派生出的Circle类 private double Radius; public
44、Circle(double r) /构造函数 Radius = r; public override double GetArea() /重载的求面积方法 return (Math.PI * Radius * Radius); public override double GetPerim() /重载的求周长方法 return (2 * Math.PI * Radius); 接口方法实现public interface Shape double GetArea(); double GetPerim(); class Rectangle : Shape /派生出来的Rectangle类 publ
45、ic double Width; /矩形的宽度 public double Length; /矩形的长度 public Rectangle(double a, double b)/构造函数 Width = a; Length = b; public double GetArea() /重载的求面积方法 return (Width * Length); public double GetPerim() /重载的求周长方法 return (2 * (Length + Width); class Circle : Shape /派生出的Circle类 public double Radius; pu
46、blic Circle(double r) /构造函数 Radius = r; public double GetArea() /重载的求面积方法 return (Math.PI * Radius * Radius); public double GetPerim() /重载的求周长方法 return (2 * Math.PI * Radius); 4设计一个抽象类Calculate(计算),该类包含OptA、OptB、OptC三个double类型的字段,包含一个带有两个double类型参数的构造函数(用于给字段OptA、OptB赋值)和一个名为SqrtForSum的抽象方法,该方法带有三个d
47、ouble类型参数、返回值类型为double型。再设计一个继承于Calculate的派生类Cal,该类包含一个带有三个double类型参数的构造函数,并重写SqrtForSum方法用于计算三数和的平方根。public abstract class Calculate protected double OptA, OptB, OptC; public Calculate(double a, double b) OptA = a; OptB = b; public abstract double SqrtForSum(double a,double b,double c); class Cal:C
48、alculate public Cal(double a, double b, double c): base(a, b) OptC = c; public override double SqrtForSum(double a, double b, double c) double sum; sum = a + b + c; return Math .Sqrt (sum ); class Program static void Main(string args) double a, b, c,sum; a = Convert.ToDouble(Console.ReadLine(); b =
49、Convert.ToDouble(Console.ReadLine(); c = Convert.ToDouble(Console.ReadLine();Cal cc = new Cal(a,b,c); sum=cc.SqrtForSum(a,b,c); Console.WriteLine(sum=0, sum); 5编写一个通用的人员类(Person),该类具有(Name)、年龄(Age)、性别(Sex)等字段。然后通过对Person类的继承得到一个学生类(Student)。学生类能够存放学生5门课的成绩,具有重载构造函数用于对学生的信息进行赋值(构造函数进行重载,至少给出三种形式),并有求
50、平均成绩的方法和显示学生信息的方法,最后编程对Student类的功能进行验证。public class Person public string Name; public int Age; public char Sex; public class Student : Person public double Score; public double Aver; public Student(string xm, int nl, char xb) Name = xm; Age = nl; Sex = xb; Score = new double5; public Student() Name
51、= 王平; Age = 18; Sex = 女; Score = new double5; public Student(string xm, int nl, char xb, double cj) Name = xm; Age = nl; Sex = xb; Score = new double5; for (int i = 0; i 5; i+) Scorei = cji; public double CalAver() double sum = 0; for (int i = 0; i 5; i+) sum = sum + Scorei; Aver = sum / 5; return (
52、Aver); public void display() Console.WriteLine(:0, Name); Console.WriteLine(年龄:0, Age); Console.WriteLine(性别:0, Sex); Console.Write(成绩:); for (int i = 0; i 5; i+) Console.Write(0 , Scorei); Console.WriteLine(n平均成绩:0, CalAver(); class Program public static void Main() double cj = 87, 78, 90, 67, 89 ;
53、 Student stu; stu = new Student(); stu.display(); stu = new Student(三, 20, 男); stu.display(); stu = new Student(三, 20, 男, cj); stu.display(); Console.Read(); 6设计一个控制台应用程序,定义如下接口Ia:interface Ia/声明接口Iafloat getarea();/求面积从它派生Rectangle(长方形类)和Square(正方形)两个类,包含getarea方法的实现。并分别输出长2宽3的长方形和长5的正方形的面积。 interf
54、ace Ia/声明接口Ia float getarea();/接口成员声明 public class Rectangle : Ia/类Rectangle继承接口Ia float x, y; public Rectangle(float x1, float y1)/构造函数 x = x1; y = y1; float Ia.getarea()/显式接口成员实现,带有接口名前缀,不能使用public return x * y; public class Square : Ia/类Square继承接口Ia float x; public Square(float x1)/构造函数 x = x1; f
55、loat Ia.getarea()/显式接口成员实现,带有接口名前缀,不能使用public return x * x; class Program static void Main(string args) Rectangle box1 = new Rectangle(2.0f, 3.0f); /定义一个类实例 Ia ia = (Ia)box1; /定义一个接口实例 Console.WriteLine(长方形面积: 0, ia.getarea(); Square box2 = new Square(5.0f); /定义一个类实例 Ia ib = (Ia)box2; /定义一个接口实例 Cons
56、ole.WriteLine(正方形面积: 0, ib.getarea(); 7设计一个控制台应用程序,含一个学生类Stud(每个学生有学号xh、xm和分数fs私有字段),向ArrayList对象中添加若干个学生对象,并按分数从高到低输出所有学生信息。要求比较采用继承Icomparer接口的方式实现。class Program class Stud int xh; /学号 string xm; / int fs; /分数 public int pfs /pfs属性 get return fs; public Stud(int no, string name, int degree) xh = no; xm = name; fs = degree; public void disp() Console.WriteLine(t0t1t2, xh, xm, fs); public class myCompareClassfs : ICo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030全球PCA输液泵行业调研及趋势分析报告
- 2025年全球及中国结构型包装用蜂窝行业头部企业市场占有率及排名调研报告
- 2025-2030全球自主最后一英里送货机器人行业调研及趋势分析报告
- 2025年全球及中国可见光超透镜行业头部企业市场占有率及排名调研报告
- 2025-2030全球钣金冲焊型液力变矩器行业调研及趋势分析报告
- 2025-2030全球教育行业CRM软件行业调研及趋势分析报告
- 2025-2030全球艾氏剂行业调研及趋势分析报告
- 2025-2030全球卡车液力变矩器行业调研及趋势分析报告
- 2025年全球及中国钴铁合金软磁材料行业头部企业市场占有率及排名调研报告
- 2025-2030全球高速RDF制粒机行业调研及趋势分析报告
- 小学六年级数学上册《简便计算》练习题(310题-附答案)
- 地理标志培训课件
- 2023行政主管年终工作报告五篇
- 2024年中国养老产业商学研究报告-银发经济专题
- 培训如何上好一堂课
- 高教版2023年中职教科书《语文》(基础模块)下册教案全册
- 2024医疗销售年度计划
- 税务局个人所得税综合所得汇算清缴
- 人教版语文1-6年级古诗词
- 上学期高二期末语文试卷(含答案)
- 人教版英语七年级上册阅读理解专项训练16篇(含答案)
评论
0/150
提交评论