21xrx.com
2024-12-27 02:10:24 Friday
登录
文章检索 我的文章 写文章
C++中动物类的继承和多态——以麻雀作为鸟类的子类示例
2023-06-24 09:53:15 深夜i     --     --
C++继承 动物类 多态 麻雀 鸟类的子类

在C++中,继承和多态是面向对象编程中非常重要的概念。其中,继承是指一个类可以从另一个类中继承属性和方法,而多态则是指同一方法在不同的子类中有不同的实现。

假设有一个动物类,里面包含了动物的一些基本属性和方法。如果我们要创建一个鸟类,可以选择继承动物类并添加一些鸟类特有的属性和方法。例如,在鸟类中添加了飞行、下蛋等方法。此时,麻雀可以被定义为鸟类中的一个子类。

在C++中,可以通过以下方式来继承动物类:


class Animal {

public:

  int age;

  string name;

  void eat()

    cout<<"Animal is eating."<<endl;

  

};

class Bird : public Animal {

public:

  int feathers;

  void fly()

    cout<<"I am flying."<<endl;

  

  void layEggs()

    cout<<"I am laying eggs."<<endl;

  

};

class Sparrow : public Bird {

public:

  void chirp()

    cout<<"I am chirping."<<endl;

  

};

在上面的代码中,我们创建了一个Animal类,并在Bird类中继承了Animal类的属性和方法。我们还添加了飞行和下蛋这两个鸟类特有的方法。在Sparrow类中,我们再次继承了Bird类并添加了麻雀特有的方法——啁啾。

此时,我们可以定义一个麻雀对象,并调用其方法:


int main() {

  Sparrow sparrow;

  sparrow.age = 2;

  sparrow.name = "Little Sparrow";

  sparrow.feathers = 100;

  sparrow.fly();

  sparrow.layEggs();

  sparrow.chirp();

  return 0;

}

在上面的代码中,我们创建了一个Sparrow对象,并为它设置了年龄、名字和羽毛数量等属性。然后,我们调用了鸟类中的飞行和下蛋方法,以及麻雀特有的啁啾方法。

在使用多态时,同样可以通过继承来实现。我们可以将动物、鸟类和麻雀都定义为一个指向动物的指针,然后通过调用其方法来实现多态:


int main() {

  Animal* animal1 = new Sparrow();

  animal1->eat();

  return 0;

}

在上面的代码中,我们创建了一个指向Sparrow对象的指针,并将其定义为一个指向动物的指针。然后,我们通过调用其eat()方法来实现多态。

总之,在C++中,继承和多态是非常强大的编程概念。通过使用继承,我们可以从一个类中继承属性和方法,并创建出一个新的类;而通过多态,我们可以将不同的对象都定义为一个指向同一类型的指针,从而实现不同的行为。当我们在编写程序时,需要根据实际情况来选择使用哪种方式来实现我们的需求。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复