父类:
package inherit;
public class Father {
protected String name;
public Father(){
name = "father";
}
public void say(){
System.out.println("hi~ I am " + name);
}
}
子类:
package inherit;
public class Son extends Father{
public Son(){
name = "son";
}
public void say(){
System.out.println("Hi~ I am " + name);
}
}
调用关系:
package inherit;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
Father father = new Father();
Son son = new Son();
Father son2 = new Son();
System.out.println("son:");
son.say();
System.out.println("son2:");
son2.say();
System.out.println("father:");
father.say();
Father father2 = (Father)son;
System.out.println("father2");
father2.say();
// 下面一句无法实现父类到子类的转化,会报错:
// Exception in thread "main" java.lang.ClassCastException: inherit.Father cannot be cast to inherit.Son
// at inherit.Main.main(Main.java:26)
// Son son3 = (Son)father;
// System.out.println("son3");
// son3.say();
}
}
结果:
son:
Hi~ I am son
son2:
Hi~ I am son
father:
hi~ I am father
father2
Hi~ I am son