「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Javaのスーパークラス変数からサブクラスメソッドにアクセスするにはどうすればよいですか?

Javaのスーパークラス変数からサブクラスメソッドにアクセスするにはどうすればよいですか?

2025-03-24に投稿されました
ブラウズ:336

How Can I Access Subclass Methods from a Superclass Variable in Java?

SuperClass

からのサブクラスメソッドへのアクセスオブジェクト指向プログラミングでは、継承により、クラスは親クラスからプロパティと行動を継承できます。ただし、スーパークラス変数からサブクラスの方法にアクセスする場合、いくつかの制限が発生します。 ... } パブリッククラスの猫はペットを拡張します{ プライベートストリングカラー; public string getColor(){...} } パブリッククラスの犬小屋{ public static void main(string [] args){ ペット猫=ニューキャット(「ネコ」、12、「オレンジ」); cat.getColor(); //コンパイラエラー:getColor()はPETで定義されていません } }

クラスでは、猫のオブジェクトがPET変数に割り当てられている場合、PETで定義されたメンバーのみがアクセスできます。これには、getname()やgetage()などのメソッドが含まれますが、getColor()。 Subclassとして変数を宣言する:

abstract public class Pet {
    ...
}

public class Cat extends Pet {
    private String color;
    public String getColor() { ... }
}

public class Kennel {
    public static void main(String[] args) {
        Pet cat = new Cat("Feline", 12, "Orange");
        cat.getColor(); // Compiler error: getColor() not defined in Pet
    }
}
変数を特定のサブクラスとして宣言します:

cat cat = new Cat( "Necine"、12、 "Orange"); cat.getColor(); //有効、getColor()はcat

2で定義されています。 Subclassに変数を鋳造する:

変数を既知または予想されるサブクラスに鋳造します:

ペット猫= new cat( "newine"、12、 "orange"); ((cat)cat).getcolor(); // valid、getColor()はcasting

abstract public class Pet {
    ...
}

public class Cat extends Pet {
    private String color;
    public String getColor() { ... }
}

public class Kennel {
    public static void main(String[] args) {
        Pet cat = new Cat("Feline", 12, "Orange");
        cat.getColor(); // Compiler error: getColor() not defined in Pet
    }
}
の実装を介してアクセスできます。 public static void main(string [] args){ 猫猫=ニューキャット(「ネコ」、12、「オレンジ」); System.out.println( "cat's color:" cat.getColor()); } }

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3