1. 求大神解答,用c#编,在线等
这是这题目是考c#的两个概念,隐藏和重写
(1)隐藏
当分别位于父类和子类的两个方法完全一样时,调用哪个方法由对象变量的类型决定。
(2)重写
将父类方法定义为虚方法,子类重写同名方法后,通过父类变量调用哪个方法由对象变量引用的真实对象决定,而与变量自身所属的类型无关。
第一题:请编写一个Helper类,里面有一个静态方法(average(int[] arr)),然后在测试代码中调用这个方法,用来求出一个数组中所有数的平均值。
class Helper { public static double Average(int[] arr) { return arr.Average(); } }
测试:
//测试!28 int[] arrs = { 1, 2, 3, 4, 5, 6, 7 }; Console.WriteLine(Helper.Average(arrs));第二题:
2. 编写三个类:水果(Fruit)、苹果(Apple)和桔子(Orange)。a) 苹果和和桔子类都是水果类的子类;b) 为三个类设计合理的字段和方法,并在子类中用new隐藏父类的一个方法;c) 每个类都要设计带参数的构造方法,用于初始化字段的值;d) 通过控制台或Windows界面应用程序,编写测试代码。
public class Fruit { public string Name { get; set; } public void TestMethod() { Console.WriteLine("我是父类方法"); } public void EatFruit() { Console.WriteLine("开始吃 " + this.Name); } } public class Orange : Fruit { public Orange(string name) { this.Name = name; } } public class Apple : Fruit { public Apple(string name) { this.Name = name; } public new void TestMethod() { Console.WriteLine("我是子类 Apple的方法"); } }测试:
static void Main(string[] args) { // 编写三个类:水果(Fruit)、苹果(Apple)和桔子(Orange)。 //a) 苹果和和桔子类都是水果类的子类; //b) 为三个类设计合理的字段和方法,并在子类中用new隐藏父类的一个方法; //c) 每个类都要设计带参数的构造方法,用于初始化字段的值; //d) 通过控制台或Windows界面应用程序,编写测试代码。 Apple apple = new Apple("苹果"); apple.TestMethod(); Orange orange = new Orange("橘子"); orange.TestMethod(); }第三题:
public class Vehicle { public string Name { set; get; } public string Location { set; get; } public double Price { set; get; } public virtual void Turn() { Console.WriteLine("我左转。。"); } } public class Car : Vehicle { public override void Turn() { Console.WriteLine("其实我右转。。"); } }测试:
static void Main(string[] args) { // 编写两个类:Vehicle(运输工具)类和Car(轿车)类。 //a) Vehicle类是Car类的父类; //b) Vehicle类中有一个虚方法Turn()(转弯),Car类中重写这个方法; //c) 通过控制台或Windows界面应用程序,编写测试代码。 Vehicle v = new Car(); v.Turn(); }