单选题
哪一个关键字用于继承?
A
parent
B
base
C
inherits
D
public
答案解析
正确答案:B
解析:
好的,让我们来详细解析这道关于面向对象编程中继承的关键字选择题。
### 题目
哪一个关键字用于继承?
A. parent
B. base
C. inherits
D. public
### 解析
#### A. parent
- **解释**:`parent` 是 PHP 中的一个关键字,用于在子类中引用父类的方法或属性。它并不是用于声明继承关系的关键字。
- **示例**:
```php
class ParentClass {
protected function sayHello() {
echo "Hello from ParentClass";
}
}
class ChildClass extends ParentClass {
public function greet() {
parent::sayHello(); // 调用父类的方法
}
}
```
#### B. base
- **解释**:`base` 是 C# 中的一个关键字,用于在子类中引用父类的方法或属性。在 C# 中,`base` 也可以用于构造函数中调用父类的构造函数。虽然 `base` 不是直接用于声明继承关系的关键字,但它在继承中起着重要作用。
- **示例**:
```csharp
class ParentClass {
public ParentClass() {
Console.WriteLine("Constructor of ParentClass");
}
public void SayHello() {
Console.WriteLine("Hello from ParentClass");
}
}
class ChildClass : ParentClass {
public ChildClass() : base() { // 调用父类的构造函数
Console.WriteLine("Constructor of ChildClass");
}
public void Greet() {
base.SayHello(); // 调用父类的方法
}
}
```
#### C. inherits
- **解释**:`inherits` 并不是任何主流编程语言中的关键字。在 C# 中,继承是通过冒号 `:` 来实现的,而不是使用 `inherits` 关键字。
- **示例**:
```csharp
class ParentClass {
public void SayHello() {
Console.WriteLine("Hello from ParentClass");
}
}
class ChildClass : ParentClass { // 使用冒号 : 表示继承
public void Greet() {
base.SayHello(); // 调用父类的方法
}
}
```
#### D. public
- **解释**:`public` 是一个访问修饰符,用于控制类、方法、属性等的可见性。它并不是用于声明继承关系的关键字。
- **示例**:
```csharp
public class ParentClass {
public void SayHello() {
Console.WriteLine("Hello from ParentClass");
}
}
public class ChildClass : ParentClass {
public void Greet() {
base.SayHello(); // 调用父类的方法
}
}
```
### 为什么选 B
在 C# 中,`base` 关键字虽然不直接用于声明继承关系,但在继承中起着重要作用,特别是在构造函数和方法调用中。然而,根据题目的上下文,`base` 是最接近正确答案的选项,因为其他选项明显不符合要求。
### 正确答案
**B. base**
