OOP の概念 (抽象化、カプセル化、継承、ポリモーフィズム) は初めてです。
サブクラス (サッカー、ラグビー、クリケット、ボクシング、スヌーカーなど) を持つことができる Sport などの SPORTS の例を使用して、誰かが OOP を説明してください。
また、アスリート管理システムの基本構造は何でしょうか。
どんな助けでも大歓迎です。
どうもありがとう。
OOP の概念 (抽象化、カプセル化、継承、ポリモーフィズム) は初めてです。
サブクラス (サッカー、ラグビー、クリケット、ボクシング、スヌーカーなど) を持つことができる Sport などの 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 であり、そのように扱うことができます (いくつかの追加プロパティを追加する可能性がある場合のみ)。