我不熟悉 OOP 概念(抽象、封装、继承和多态)。
有人可以使用 SPORTS 示例来解释 OOP,例如可以有子类(足球、橄榄球、板球、拳击、斯诺克等)的运动。
还有什么是运动员管理系统的基本结构。
任何帮助将不胜感激。
非常感谢。
我不熟悉 OOP 概念(抽象、封装、继承和多态)。
有人可以使用 SPORTS 示例来解释 OOP,例如可以有子类(足球、橄榄球、板球、拳击、斯诺克等)的运动。
还有什么是运动员管理系统的基本结构。
任何帮助将不胜感激。
非常感谢。
这是一个非常笼统的问题,不容易准确回答,但这里有一些建议,希望至少能给你一些关于继承和多态的想法。
Sport
(类)的实例。这意味着类Football
,Boxing
等等,都继承自类Sport
。Sport
在 的任何子类中完成Sport
,因为它实际上是一项运动。例如,如果Cheer()
、Score()
和win()
被定义为 中的方法Sport
,那么每个子类也可以执行这些 - 这就是继承!Sport
,并为此提供自己的逻辑。但是,它们仍必须符合 中Score()
设置的方法的定义Sport
,以便它们能够像Sport
. 这就是多态!Sport
一个简单的伪代码示例。这可能非常愚蠢(甚至在体育术语中甚至在技术上都不正确,但我希望你明白这一点!:))
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
提示:想想现实生活中的“是”什么。如果 X 继承了 Y,X 可以专门定义为一个 X,但它仍然是一个 Y,并且可以这样处理(只有添加一些额外属性的可能性)。