c#的继承多态跟java一样吗
时间: 2023-07-27 11:09:09 浏览: 45
C# 和 Java 都支持面向对象编程,包括继承和多态。它们的语法和使用方式有些类似,但也有一些不同之处。
在 C# 中,使用关键字 `class` 来定义类,使用冒号 `:` 来表示继承关系。例如:
```
class Animal {
public virtual void MakeSound() {
Console.WriteLine("The animal makes a sound");
}
}
class Dog : Animal {
public override void MakeSound() {
Console.WriteLine("The dog barks");
}
}
```
在上面的代码中,`Dog` 类继承了 `Animal` 类,并重写了 `MakeSound` 方法。注意到在 `Animal` 类中,`MakeSound` 方法被标记为 `virtual`,而在 `Dog` 类中,被标记为 `override`。这是实现多态的关键。
在 Java 中,也使用关键字 `class` 来定义类,使用关键字 `extends` 表示继承关系。例如:
```
class Animal {
public void makeSound() {
System.out.println("The animal makes a sound");
}
}
class Dog extends Animal {
public void makeSound() {
System.out.println("The dog barks");
}
}
```
在上面的代码中,`Dog` 类同样继承了 `Animal` 类,并重写了 `makeSound` 方法。与 C# 不同的是,在 Java 中,重写方法的关键字是 `@Override`,而不是 `override`。
总的来说,C# 和 Java 的继承和多态机制很相似,但还是有一些细节上的差异。