请问关于c的具体应用场景有哪些?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1305个文字,预计阅读时间需要6分钟。
如果面试官问对象的三大特性是什么,大多数人都能回答出:封装、继承、多态。继承作为三大特性之一,近年来越来越不推荐使用,特别是在极端的语言和直接语法中。例如,class A extends B这样的直接继承语法在许多语言中就不被支持。
如果问面向对象的三大特性是什么,多数人都能回答出来:封装、继承、多态。
继承 作为三大特性之一,近来却越来越不推荐使用,更有极端的语言,直接语法中就不支持继承,例如 Go。这又是为什么呢?
为什么不推荐使用继承?
假设我们要设计一个关于鸟的类。
我们将“鸟类”定义为一个抽象类 AbstractBird。所有更细分的鸟,比如麻雀、鸽子、乌鸦等,都继承这个抽象类。
大部分鸟都会飞,那我们可不可以在 AbstractBird 抽象类中,定义一个 Fly() 方法呢?
答案是否定的。尽管大部分鸟都会飞,但也有特例,比如鸵鸟就不会飞。鸵鸟继承具有 Fly() 方法的父类,那鸵鸟就具有“飞”这样的行为,这显然不符合我们对现实世界中事物的认识。
解决方案一
在鸵鸟这个子类中重写 Fly() 方法,让它抛出异常。
本文共计1305个文字,预计阅读时间需要6分钟。
如果面试官问对象的三大特性是什么,大多数人都能回答出:封装、继承、多态。继承作为三大特性之一,近年来越来越不推荐使用,特别是在极端的语言和直接语法中。例如,class A extends B这样的直接继承语法在许多语言中就不被支持。
如果问面向对象的三大特性是什么,多数人都能回答出来:封装、继承、多态。
继承 作为三大特性之一,近来却越来越不推荐使用,更有极端的语言,直接语法中就不支持继承,例如 Go。这又是为什么呢?
为什么不推荐使用继承?
假设我们要设计一个关于鸟的类。
我们将“鸟类”定义为一个抽象类 AbstractBird。所有更细分的鸟,比如麻雀、鸽子、乌鸦等,都继承这个抽象类。
大部分鸟都会飞,那我们可不可以在 AbstractBird 抽象类中,定义一个 Fly() 方法呢?
答案是否定的。尽管大部分鸟都会飞,但也有特例,比如鸵鸟就不会飞。鸵鸟继承具有 Fly() 方法的父类,那鸵鸟就具有“飞”这样的行为,这显然不符合我们对现实世界中事物的认识。
解决方案一
在鸵鸟这个子类中重写 Fly() 方法,让它抛出异常。

