package duotaidemo;
/*
* 写了一个对象向上转型的demo
* 注意点:因为对象发生了向上转型之后,所调用的方法一定是被子类复写过的方法,但是注意的是,此时a不能调用 B中的独有方法
* 向上转型,子类-父类,b 是子类的实例对象,把b 给到A 就是属于向上转型
*/
public class duotaidemo {
public static void main(String[] args) {
//子类实例化
B b = new B();
//向上转型,子类-父类,b 是子类的实例对象,把b 给到A 就是属于向上转型
A a = b;
a.fun(); //a 既然是父类对象,调用父类中的fun方法,显然是要输出父类中的fun结果的值,但是调试发现 输出的是子类的fun结果,这是为什么呢? 因为对象
//发生了向上转型之后,所调用的方法一定是被子类复写过的方法,但是注意的是,此时a不能调用 B中的独有方法
}
}
//写一个父类
class A {
//父类中写一个方法
public void fun(){
System.out.println("hell0");
}
//再写一个方法
public void fun2(){
System.out.println("hai!");
}
}
//写一个子类去继承父类A
class B extends A{
//复写父类中的fun方法
public void fun(){
System.out.println("哈哈哈哈");
}
//写一个子类自己的方法
public void fun3(){
System.out.println("这是我儿子独有的方法");
}
}