
OOPの古典的なアナロジーを思い出してください。ここでは、「声」と「食事」のメソッドを持つペットクラスがあり、そこから猫と犬を継承します。
しかし、その後、光が来て、話をしない水族館の魚をもたらし、次にヴァシャが来て、彼の愛するサボテンをもたらします。
すでに混乱していますが、Vovochkaは次のように尋ねています。「この動物園の静的メソッド、インターフェイス、抽象クラスはどこにあり、クラスオブジェクトはクラス自体とどう違うのですか?」 もちろん、説明は可能ですが、難しいです。 理解するのはさらに難しいです
または、もう1つの古典的な例は、正方形を継承したい長方形です(論理的には、正方形は長方形の特殊なケースです)が、長方形には長さと幅があり、正方形には片側しかありません。 ここでも何か混乱しています。
では、OOPをよりよく説明する方法について考えてみましょう。
オブジェクト指向プログラミングは、実世界のオブジェクトの記述(より正確には、実世界の記述だけでなく)ではなく、あらゆる種類の工学局、建築設計者、設備設計者などの設計手法(あらゆる種類のコンピューターの外観)から登場しました。

したがって、この会社で航空機を製造する会社と設計局を想像してください(たとえば、ボーイング)。 軍用機、貨物、乗客のいくつかのモデルを注文しました。
最初に行うことは、すべてのモデルの一般的な描画を開始することです。 この図によれば、実際の航空機を作ることはまだ不可能ですが、一般的な実装の詳細がすでに含まれています。 これは抽象クラスです。
Javaコード
public abstract class { // ; public abstract void (); public void () { // } public abstract void (); }
, , , , ( , ), , , . .
Java
public interface { // long get(); double get(); long get(); void (); void (); void (); } public abstract class implements { ...
, , , , (/) .
Java
public abstract class { // ; public abstract void (); // public void () { // } public abstract void (); // }
, . . , , . , , . .
Java
public class extends { public int get() { return 120; } public void () { __(); _(); ___(); (): } ... } public class extends { public int get() { return 5; } public void () { _(); _(); (): } ... }
() . , , , . () .
Java
= new (); .set(0.99);

, , . . .
Java
.set(0.0);
2 , , (, ) , ( , ). .
Java
public class extends { ... public void () { _(); ___(); ___(); (): } ... } public class extends { public void () { _(); _(); (): } ... }
, , ( ), « - ». .
Java
public class extends { private = new 45() ... }
, (, , ), . .
120 , - 130 ( ), , . , - 120 , 130 , , , . .
Java
public class 130 extends { @Override public int get() { return 130; } ... }
?
, , . , . , - (, , ), - () .
, , , . . .
( ), , , , - (, , , ), , . — . — ..
!
P.S. (, Java SE)