Java でのダウンキャスト
Java を使用している場合は、TypeCasting
、UpCasting
、または DownCasting
を使用できます。 それらの使用の目的は、あるタイプから別のタイプに変換することです。
これには、変数またはオブジェクトを使用できます。 オブジェクトの場合、2 種類の変換を使用できます。
1つ目は親から子へ、2つ目は子から親へです。
ここで、Child から Parent への変換は UpCasting
として知られ、Parent から Child への変換は DownCasting
として知られています。 UpCasting
は暗黙的または明示的に実行できますが、明示的に DownCasting
しか実行できません。
この記事では、DownCasting
の詳細を見ていきます。 また、トピックをより簡単にするために、必要な例と説明を使用してトピックを説明します。
Java でのダウンキャスト
ここで、DownCasting
に関する例を見ていきます。
class ParentClass {
String name;
void showMessage() {
System.out.print("Parent class method is called");
}
}
class ChildClass extends ParentClass {
int age;
@Override
void showMessage() {
System.out.print("The child class method is called");
}
}
class Downcasting {
public static void main(String[] args) {
ParentClass Parent = new ChildClass();
Parent.name = "Alex";
ChildClass Child = (ChildClass) Parent;
Child.age = 21;
System.out.print("Name:" + Child.name + " ");
System.out.println("Age:" + Child.age);
Child.showMessage();
}
}
コードを部分的に説明しましょう。 まず、ParentClass
という名前の親クラスを作成し、次に ChildClass
という名前の子クラスを作成し、それを ParentClass
で拡張します。
ChildClass
では、@Override
によるオーバーライドを実行しました。
その後、制御クラスである Downcasting
という名前の別のクラスを作成しました。 クラスでは、ParentClass
からオブジェクトを作成しました。
次に、ChildClass Child = (ChildClass)Parent;
という行でオブジェクトをダウンキャストします。
最後に、すべてのデータを印刷します。 上記のJavaプログラムを実行した後。
以下のような出力が得られます。
Name:Alex Age:21
The child class method is called
暗黙的にダウンキャストしようとするとコンパイラ エラーが発生する
上記の例では、ダウンキャストを明示的に実行しました。 暗黙的にダウンキャストしようとすると、エラーが発生する可能性があります。
暗黙的にダウンキャストしようとした次の例を確認してください。
class ParentClass {
String name;
void showMessage() {
System.out.print("Parent class method is called");
}
}
class ChildClass extends ParentClass {
int age;
@Override
void showMessage() {
System.out.print("Child class method is called");
}
}
class Downcasting {
public static void main(String[] args) {
ParentClass Parent = new ChildClass();
Parent.name = "Alex";
ChildClass Child = new ParentClass();
Child.age = 21;
System.out.print("Name:" + Child.name + " ");
System.out.println("Age:" + Child.age);
Child.showMessage();
}
}
上記のプログラムをコンパイルしようとすると、次のようなエラーが発生します。
/tmp/AMCRVnDhlV/Downcasting.java:22: error: incompatible types: ParentClass cannot be converted to ChildClass
ChildClass Child = new ParentClass();
^
1 error
DownCasting
は外部で行う必要があることに注意してください。 DownCasting
を使用すると、子オブジェクトは親オブジェクトのプロパティを取得できます。
ここで共有されているコード例は Java であり、システムに Java が含まれていない場合は、環境に Java をインストールする必要があることに注意してください。
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn