有人能用运动的例子来解释OOP吗?
我是OOP概念的新手(抽象、封装、继承和多态) 有人能用一个体育类的例子来解释OOP吗?比如运动,它可以有子类(足球、橄榄球、板球、拳击、斯诺克等等) 运动员管理系统的基本结构是什么 任何帮助都将不胜感激有人能用运动的例子来解释OOP吗?,oop,inheritance,programming-languages,polymorphism,Oop,Inheritance,Programming Languages,Polymorphism,我是OOP概念的新手(抽象、封装、继承和多态) 有人能用一个体育类的例子来解释OOP吗?比如运动,它可以有子类(足球、橄榄球、板球、拳击、斯诺克等等) 运动员管理系统的基本结构是什么 任何帮助都将不胜感激 非常感谢。这是一个非常普通的问题,不容易精确回答,但这里有一些提示,希望至少能给你一些关于继承和多态性的想法 所有运动(概念)实际上都是运动(类)的实例。这意味着类Football,Boxing等都继承自类Sport 可以在Sport中完成的事情可以在Sport的任何子类中完成,因为它实际上
非常感谢。这是一个非常普通的问题,不容易精确回答,但这里有一些提示,希望至少能给你一些关于继承和多态性的想法
- 所有运动(概念)实际上都是
(类)的实例。这意味着类运动
,Football
等都继承自类Boxing
李>Sport
- 可以在
中完成的事情可以在Sport
的任何子类中完成,因为它实际上是一项运动。例如,如果Sport
、cheel()
和Score()
在win()
中被定义为方法,那么每个子类也可以执行这些操作-这就是继承李>Sport
- 然而,每项运动都可能有不同的得分方式。如果是这样,他们可以覆盖
中的方法,并为此提供自己的逻辑。但是,他们必须仍然遵守Sport
中规定的方法Sport
的定义,这样他们才能像Score()
那样行事。这是多态性李>Sport
- 欢呼和胜利在所有运动中可能是同一个概念,因此它们可以从
Sport
提示:想想现实生活中的事情是什么。如果X继承了Y,那么X可以被定义为一个X,但它仍然是一个Y,并且可以这样处理(只有添加一些额外属性的可能性) 这是一个非常普通的问题,不容易精确回答,但这里有一些提示,希望至少能给你一些关于继承和多态性的想法
- 所有运动(概念)实际上都是
(类)的实例。这意味着类运动
,Football
等都继承自类Boxing
李>Sport
- 可以在
中完成的事情可以在Sport
的任何子类中完成,因为它实际上是一项运动。例如,如果Sport
、cheel()
和Score()
在win()
中被定义为方法,那么每个子类也可以执行这些操作-这就是继承李>Sport
- 然而,每项运动都可能有不同的得分方式。如果是这样,他们可以覆盖
中的方法,并为此提供自己的逻辑。但是,他们必须仍然遵守Sport
中规定的方法Sport
的定义,这样他们才能像Score()
那样行事。这是多态性李>Sport
- 欢呼和胜利在所有运动中可能是同一个概念,因此它们可以从
Sport
提示:想想现实生活中的事情是什么。如果X继承了Y,那么X可以被定义为一个X,但它仍然是一个Y,并且可以这样处理(只有添加一些额外属性的可能性) 我想用一个答案来解释像OOP这样广泛的论点有点困难。尽量说得更具体些。针对你不理解的概念提出不同的问题,你以前搜索过什么?我想在一个答案中解释像OOP这样广泛的论点有点困难。尽量说得更具体些。针对你不理解的概念提出不同的问题,你以前搜索过什么?
public class Sport{
public function score(){
print("Scored!");
}
public function Win(){
print("Won!");
}
public function Cheer(){
print("Cheeeeeeeeer!!!");
}
}
public class Soccer Inherits Sport{
public override function score(){
print("One goal!");
}
}
public class Boxing Inherits Sport{
public override function score(){
print("Knockout!");
}
}
// Using the classes:
Sport generalSport = new Sport(); // generalSport is just a non-specific sport
Sport soccerSport = new Soccer(); // soccerSport is a Soccer, but also a Sport!
Sport boxingSport = new Boxing(); // boxingSport is a Boxing, but also a Sport!
generalSport.Win(); // This should output: "Won!" (from Sport)
soccerSport.Win(); // ... "Cheeeeeeeeer!!!" (inherited from Sport)
boxingSport.Cheer() // ... "Cheeeeeeeeer!!!" (inherited from Sport)
generalSport.score(); // "Scored!"
soccerSport.score(); // "One Goal", since it was overridden in Soccer
boxingSport.score() // "Knockout!", since overridden in Boxing