[JAVA] Upcast, Dowcast und Konstruktor

import java.util.*;

interface Sample{ //定数はインターフェースに定義できるよ public final static int num=10; // Abstrakte Methode public abstract wird automatisch erstellt public abstract void hoge();

}

interface Test{ //定数はインターフェースに定義できるよ public final static int num=10; // Abstrakte Methode public abstract wird automatisch erstellt public abstract void exe();

}

//多重実現 class SampleImp implements Sample,Test{ public void hoge(){

}

public void exe(){
    
}

}

class A{

public int i=10;

 A(int i){

System.out.println ("Ein Konstruktor"); }

void test(){
    System.out.println("void test A");
}

void test2(){
    System.out.println("void test2 A");
}

}

class B extends A{

public int i=100;

B(){
    super(100);
    System.out.println("Bkon");
}

@Override
void test(){
    System.out.println("void test B");
}

 void test3(){
    System.out.println("void test3 B");
}

}

public class Main { public static void main(String[] args) throws Exception {

//キャストアップの例 // Beim Umwandeln von einer Unterklasse in eine Superklasse wird die nähere 10 für die Variable verwendet und die Methode wird überschrieben //れたテスト2と出力、Bのメソッドは上書きされていないので使おうとするとエラー

// Hinweis: Die Superklasse wird für Feldvariablen priorisiert, und die Unterklasse wird für Methoden priorisiert. A b= new B();

    b.test();
    //b.test3();

// Beispiel für Downcast ↓ Es kann nur der Upcast zurückgegeben werden. Sie können instanceof auch als Methode zur Überprüfung verwenden.

// Upcast (implizit) A bb= new B();

// Niedergeschlagen (explizit) B bbb = (B)bb;

// SubClass-Methode bbb.test(); bbb.test3();

}

}

Recommended Posts

Upcast, Dowcast und Konstruktor
Konstrukteur