项目八 第44练 类的继承《算法与程序设计--c#》(河北科学技术出版社)一课一练
|
2份
|
7页
|
66人阅读
|
0人下载
内容正文:
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《算法与程序设计—C#》(河北科学技术出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《算法与程序设计--c#》(河北科学技术出版社)一课一练的项目八的第2练,内容涵盖项目八子任务二 类的继承。
《算法与程序设计C#》(河北科学技术出版社)第44练
项目八 C#面向对象编程
任务二 类的继承
1、 单项选择题(本题共5小题)
1. 以下关于 C# 类继承的说法,正确的是( )。
A. 一个类可以继承多个基类
B. 继承使用implements关键字
C. 子类可以访问父类的所有成员
D. 继承可以实现代码复用
【答案】D
【解析】A 错误:C# 不支持多重继承(一个类只能有一个直接基类)。
B 错误:implements用于实现接口,继承使用:符号(如class Child : Parent)。
C 错误:子类无法访问父类的private成员。
D 正确:继承的主要目的是复用父类的代码,并扩展新功能
2.以下代码中,子类Student继承父类Person,正确的语法是( )
// 父类 class Person { }
// 子类
A. class Student extends Person { }
B. class Student : Person { }
C. class Student implements Person { }
D. class Student inherits Person { }
【答案】B
【解析】C# 使用:符号表示继承(选项 B)。extends(A)是 Java 的继承关键字,implements(C)用于实现接口,inherits(D)是VB.NET的继承关键字
3.父类中有一个protected成员,子类可以( )。
A. 直接访问该成员
B. 只能通过父类的公有方法访问
C. 无法访问该成员
D. 只有在同一命名空间时才能访问
【答案】A
【解析】protected成员可以被同一类或子类访问(无论是否在同一命名空间)。
4.以下代码的输出结果是( )。
class Animal {
public void Eat()
{ Console.WriteLine("Animal eats."); }
}
class Dog : Animal
{ public new void Eat()
{ Console.WriteLine("Dog eats."); }
}
class Program
{ static void Main()
{ Animal animal = new Dog();
animal.Eat(); } }
A. Animal eats.
B. Dog eats.
C. 编译错误
D. 运行时异常
【答案】A
【解析】new关键字隐藏了父类的方法,但未改变基类引用的行为。
animal是Animal类型的引用,调用的是Animal.Eat()。
若要实现多态,需在父类中使用virtual关键字,并在子类中使用override。
5. 在 C# 中,以下关于构造函数继承的说法正确的是( )。
A. 子类会自动继承父类的构造函数
B. 子类必须重写父类的构造函数
C. 子类可以通过base()调用父类的构造函数
D. 构造函数不能被继承,但可以被重写
【答案】C
【解析】A 错误:构造函数不能被继承。
B 错误:子类无需重写父类构造函数,但需在自身构造函数中显式调用父类构造函数(除非父类有无参构造函数)。
C 正确:通过base()调用父类构造函数.
D 错误:构造函数不能被继承或重写,但可以重载
2、 填空题(本题共5小题)
1. 属性是对______的封装,用于控制数据的访问和修改。
【答案】字段
【解析】属性是对字段的封装,用于控制数据的访问和修改.属性(Property)是 C# 中封装字段(Field)的机制,通过get和set访问器提供安全的数据访问。
2. 访问器中用于读取值的是______,用于写入值的是______。
【答案】get set
【解析】get访问器:返回属性的值(类似方法的返回值)。
set访问器:通过隐式参数value接收外部传入的值。
3. 若要限制属性只能在类内部修改,应使用______访问修饰符修饰 set 访问器。
【答案】private
【解析】private set允许属性在类外部被读取,但只能在类内部修改。
4. 自动属性的语法省略了______,由编译器自动生成。
【答案】私有字段
【解析】自动属性的语法省略了 私有字段,由编译器自动生成
5. 在属性的 set 访问器中添加______可以验证输入值的合法性。
【答案】验证逻辑
【解析】通过在set中添加条件判断,可以防止非法数据被赋值给属性。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$
编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《算法与程序设计—C#》(河北科学技术出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。
本卷是《算法与程序设计--c#》(河北科学技术出版社)一课一练的项目八的第2练,内容涵盖项目八子任务二 类的继承。
《算法与程序设计C#》(河北科学技术出版社)第44练
项目八 C#面向对象编程
任务二 类的继承
1、 单项选择题(本题共5小题)
1. 以下关于 C# 类继承的说法,正确的是( )。
A. 一个类可以继承多个基类
B. 继承使用implements关键字
C. 子类可以访问父类的所有成员
D. 继承可以实现代码复用
2.以下代码中,子类Student继承父类Person,正确的语法是( )
// 父类 class Person { }
// 子类
A. class Student extends Person { }
B. class Student : Person { }
C. class Student implements Person { }
D. class Student inherits Person { }
3.父类中有一个protected成员,子类可以( )。
A. 直接访问该成员
B. 只能通过父类的公有方法访问
C. 无法访问该成员
D. 只有在同一命名空间时才能访问
4.以下代码的输出结果是( )。
class Animal {
public void Eat()
{ Console.WriteLine("Animal eats."); }
}
class Dog : Animal
{ public new void Eat()
{ Console.WriteLine("Dog eats."); }
}
class Program
{ static void Main()
{ Animal animal = new Dog();
animal.Eat(); } }
A. Animal eats.
B. Dog eats.
C. 编译错误
D. 运行时异常
5.在 C# 中,以下关于构造函数继承的说法正确的是( )。
A. 子类会自动继承父类的构造函数
B. 子类必须重写父类的构造函数
C. 子类可以通过base()调用父类的构造函数
D. 构造函数不能被继承,但可以被重写
2、 填空题(本题共5小题)
1. 属性是对______的封装,用于控制数据的访问和修改。
2. 访问器中用于读取值的是______,用于写入值的是______。
3. 若要限制属性只能在类内部修改,应使用______访问修饰符修饰 set 访问器。
4. 自动属性的语法省略了______,由编译器自动生成。
5. 在属性的 set 访问器中添加______可以验证输入值的合法性。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$