> For the complete documentation index, see [llms.txt](https://scls-cs.gitbook.io/scls-apcs-lab/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://scls-cs.gitbook.io/scls-apcs-lab/inheritance.md).

# Inheritance

完成下面五个任务：

![](https://1730460162-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwc27wmKfnoDuqA5F9f2t%2Fuploads%2Fwy06cf59SGOL6HR1fDeQ%2Fimage.png?alt=media\&token=8c2d8148-fa77-4678-9841-cba90375d990)

![](https://1730460162-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwc27wmKfnoDuqA5F9f2t%2Fuploads%2Fn9aVdS8P8UZnCGvWmwfq%2Fimage.png?alt=media\&token=d8430fb8-57a3-40c1-8484-4241838b5440)

1. 在OnlineGDB中创建三个class，分别为Mammal, Dog和Main。抄写图片中的代码。
2. 实现Mammal中的三个accessor method，分别命名为isVertebreate(), getMileProducer(), getHairColor()。
3. 实现Dog中的accessor method，命名为getName()
4. 在main()中抄写如下代码，运行并观察结果：

![](https://1730460162-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fwc27wmKfnoDuqA5F9f2t%2Fuploads%2FTcC8EqxBgfvfULEWAUMB%2Fimage.png?alt=media\&token=efefd273-6728-4401-ae20-0d4b367e7cb1)

5. 思考并回答下列问题，将答案以注释的形式写在main()函数的后面：

* 父类和子类分别有几个构造函数，它们分别有几个参数？
* 创建myDog1和myDog2时，分别调用了父类的哪个构造函数？
* myDog1.getName()和myDog1.getHairColor()的值分别是多少？为什么？
* myDog1.isVertebrate()和myDog1.isMilkProducer()的值分别是多少？为什么？
* 注意Dog类中并没有定义getHairColor()，但是myDog1和myDog2依然可以调用它。为什么呢？
* myDog2的头发颜色是什么？它的头发颜色是在哪里被赋值的？
* 结合这个例子，谈谈你对继承的理解。
