11.在C#的语法中,( a )关键字可以实现在派生类中对基类的虚函数进行重载(选一项)
相关信息
子类对父类进行重写
12.请问,此程序输出结果是( C )
c#abstract class BaseClass{ //抽象类父类
public virtual void MethodA(){Console.WriteLine("BaseClass");} //方法A 输出BaseClass
public virtual void MethodB(){} //方法B 什么都不干
}
class Class1: BaseClass{ //子类1
public void MethodA(){Console.WriteLine("Class1");} //方法A 隐藏方法输出 Class1
public override void MethodB(){} //方法B 重写父类方法B
}
class Class2: Class1{ //子类2
new public void MethodB(){} //把子类1中的B方法隐藏
}
class MainClass{
public static void Main(string[] args){Class2 o = new Class2();o.MethodA(); }
}
13.请问,此程序输出结果是( a )
c#public abstract class A { public A() { Console.WriteLine('A'); } //构造函数输出A
public virtual void Fun() { Console.WriteLine("A.Fun()"); } } //虚方法输出A.Fun()
public class B: A { public B() { Console.WriteLine('B'); } //B类构造函数输出B
public new void Fun() { Console.WriteLine("B.Fun()"); } //隐藏方法 把B.Fun() 隐藏
public static void Main() { A a = new B();a.Fun(); } }
相关信息
14.以下叙述正确的是( bc ):
15.以下关于C#代码的说法正确的是( a )。(选择一项)
c#Public abstract class Animal //抽象类 Animal
{
Public abstract void Eat(); //抽象方法
Public void Sleep()
{
}
}
16.在c#中,关于继承和接口,以下说法正确的是( b ) (单选)
c# Public class Animal //父类
{
Public 空白处1 void Eat()
{
Consone.WriteLine(“我要吃”);
}
}
Public class Tiger:Animal //子类继承父类
{
Public 空白处2 void Eat()
{
Consone.WriteLine(“老虎吃动物”);
}
Public calssTest
{
Static void Main()
{
Animal an = new Tiger(); //父类声明
an.Eat; //调用重写方法
}
}
}
c#Public abstract class Animal{ //抽象类父类 Animal
Public abstract void Eat(); //抽象方法
}
Public class Tiger:Animal{ //子类1 继承父类
Public override void Eat(){ //重写方法
Console.WriteLine(“老虎吃动物”);
}
}
Public class Tigress:Tiger{ //子类2 继承父类
Static void Main(){
Tigress tiger=new Tigress();//子类构造
tiger.Eat();
}
}
相关信息
子类构造函数被调用,都为调用重写后的方法
c#public interface IDataBase //接口
{
void OpenTable(string tableName); //打开
void UpdataTable(string tableName); //更新
}
public class CDataBase:IDataBase //子类继承接口
{
public void OpenTable(string tableName) //打开方法
{
Console.WriteLine("打开数据表");
}
public void UpdataTable(string tableName) //更新方法
{
Console.WriteLine("更新数据表");
}
static void Main()
{
CDataBase db = new CDataBase(); //声明子对象 然后子类构造
db.OpenTable("Customers");
}
}
相关信息
a.接口中方法不需要提供实现
b.默认为public
c.即使没有调用,也要实现方法
21.c#中 下列代码运行结果是( a )(选择一项)
c#public class Student{ //父类
public virtual void Exam(){ //虚方法
Console.WriteLine("学生都要考试");
}
}
public class Undergraduate:Student{ //子类继承父类
public new void Exam(){ //隐藏父类
base.Exam(); //调用父类里的方法
Console.WriteLine("大学生有选择考试科目的权利");
}
}
public class Test{
static void Main() {
Student stu = new Undergraduate(); //父类声明对象,子类构造
stu.Exam();
}
}
相关信息
隐藏方法只有在子类声明才会调用隐藏方法
22.c#中 下列代码的运行结果是( a )(选择一项)
c#struct Student{ //声明学生结构体
public int age;
public string name;
public Student(int age,string name){ //构造函数(年龄、名字)
this.age=age;
this.name=name;
}
}
public class Test{
static void Mian(){
Student stu1= new Student(18,"小方"); //创建2名学生
Student stu2= new Student(24,"小刚");
stu2=stu1;//在c#中 结构体是值类型,在这里赋值只会赋值其中变量的值
stu1.age=30;
stu1.name="小燕";
Console.WriteLine(stu2.age);
Console.WriteLine(st2.name);
}
}