世界杯赔率_男乒世界杯决赛 - fjpftz.com

HOME> 意大利无缘世界杯> 类的多态性,方法重写,方法重载,方法隐藏介绍

类的多态性,方法重写,方法重载,方法隐藏介绍

2026-07-09 08:24:15

方法重写方法重写(Method Overriding)是实现多态性的最简单方式,一般的做法是在类中再次定义需要重写的实例方法,此过程可能需要特定的关键字,比如,C# 中的override。

什么是虚方法?虚方法是指允许被派生类重写的方法,通常对应关键字virtual。在一些语言中,虚方法是不存在的,因为默认所有方法均可被重写。

由于虚拟方法允许被重写,所以他不应该具有任何阻止该目标实现的特征,比如,私有的。

在派生类中调用基类的方法在方法重写的过程中,你可能需要使用基类的方法,如果重写的目的在于补充功能。大部分语言会提供相关的关键字来完成此目标,比如,C# 中的base关键字。

下面展示了之前示例中使用的类Animal和Kitty,可以看到Animal类拥有一个虚方法Bark,Kitty类对该方法进行了重写,并调用了基类的Bark方法。

class_polymorphism.cs// 基类 Animal

class Animal

{

// 虚方法 Bark,尝试发出声音

public virtual void Bark()

{

Console.WriteLine("试着发出声音?");

}

}

// 派生类 Kitty

class Kitty : Animal

{

// Kitty 重写了继承自 Animal 的方法 Bark

public override void Bark()

{

// 调用基类的 Bark 方法

base.Bark();

Console.WriteLine("喵喵喵!");

}

}什么是抽象方法和抽象类?抽象方法是类中已经声明,但尚未具体实现的方法,他通常需要特定的关键字来标注,比如,C# 中的abstract,并需要派生类来完成实现,一个方法被抽象的原因是其必要性和缺少通用性的逻辑。

由于需要通过派生类完成实现,抽象方法不能具有任何阻止这一目标实现的特征,比如,私有的。

拥有抽象方法的类被称为抽象类,因为没有完全的具体实现,抽象类无法被实例化。需要指出,抽象类包括了,已继承抽象方法但仍未对其实现的派生类。

抽象方法和虚方法之间的区别抽象方法要求被具体实现,否则相关类无法实例化,虚方法则表示允许被重写,能否实例化与是否被重写无关。

下面,为Animal类增加一个抽象方法Run,Kitty类需要实现该方法后才能被实例化。

class_polymorphism.cs// 基类 Animal

abstract class Animal

{

// …

// 抽象方法 Run,奔跑起来

public abstract void Run();

}

// 派生类 Kitty

class Kitty : Animal

{

// …

// Kitty 必须实现抽象方法 Run,才能被实例化

public override void Run()

{

Console.WriteLine("你看,我跑起来了!");

}

}*.cs// 创建 Kitty 的实例

Kitty kitty = new Kitty();

// 调用 Run 方法

kitty.Run();你看,我跑起来了!

最新发表
友情链接