import java.util.*;
interface Sample{ //定数はインターフェースに定義できるよ public final static int num=10; // Méthode abstraite Le résumé public est créé automatiquement public abstract void hoge();
}
interface Test{ //定数はインターフェースに定義できるよ public final static int num=10; // Méthode abstraite Le résumé public est créé automatiquement 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 ("Un constructeur"); }
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 {
//キャストアップの例 // Lors de la conversion d'une sous-classe vers une super, le plus proche 10 est utilisé pour la variable et la méthode est remplacée //れたテスト2と出力、Bのメソッドは上書きされていないので使おうとするとエラー
// Remarque: La super-classe est prioritaire pour les variables de champ et la sous-classe est prioritaire pour les méthodes. A b= new B();
b.test();
//b.test3();
// Exemple de downcast ↓ Seul le upcast peut être retourné Vous pouvez également utiliser instanceof comme méthode de vérification.
// Upcast (implicite) A bb= new B();
// Downcast (explicite) B bbb = (B)bb;
// Méthode SubClass bbb.test(); bbb.test3();
}
}