Javaでのコンフィギュレーション
1250 ワード
コヒーレントとは、関連するタイプとともにタイプが変化し、少し似ていることを意味し、javaでコヒーレントを表すのは2つの点を含む. 1.配列 AがBのスーパークラスであれば、A[]もB[]のスーパークラスであり、A[]が必要な場所はすべてB[]で代用することができる.
public class Test2 {
public static void main(String[] args){
Integer[] ints=new Integer[1];
ints[0]=99;
show(ints);
}
static void show(Number[] ns){
System.out.println(Arrays.toString(ns));
}
}
2.override
子クラスの上書きを許可する親関数の戻りタイプは、親クラスの上書きされた関数の戻りタイプの子クラスです.
3.パターンがコヒーレントにならない
AがBのスーパークラスであれば、List与List没有关系,List需要的地方不能在List中代用。 public class Test2 { public static void main(String[] args) { List<Integer> ints = new ArrayList<Integer>(); //incompatible type show(ints); } static void show(List<Number> ns) { System.out.println(ns); } }
public class Test2 {
public static void main(String[] args){
Integer[] ints=new Integer[1];
ints[0]=99;
show(ints);
}
static void show(Number[] ns){
System.out.println(Arrays.toString(ns));
}
}
2.override
子クラスの上書きを許可する親関数の戻りタイプは、親クラスの上書きされた関数の戻りタイプの子クラスです.
public class Test2 {
public static void main(String[] args){
P p=new C();
System.out.println(p.get());
}
}
class P{
public Number get(){
return new Integer(0);
}
}
class C extends P{
public Integer get(){
return new Integer(1);
}
}
3.パターンがコヒーレントにならない
AがBのスーパークラスであれば、List与List没有关系,List需要的地方不能在List中代用。 public class Test2 { public static void main(String[] args) { List<Integer> ints = new ArrayList<Integer>(); //incompatible type show(ints); } static void show(List<Number> ns) { System.out.println(ns); } }