JAVA基础(多态中向上转型和向下转型)

1,代码

class Demo3_SuperMan {

    public static void main(String[] args) {

        Person p = new SuperMan();            //父类引用指向子类对象,超人提升为了人

                                            //父类引用指向子类对象就是向上转型

        System.out.println(p.name);

        p.谈生意();

        SuperMan sm = (SuperMan)p;            //向下转型

        sm.fly();





        //p = sm;

        sm = (SuperMan)p;

        //p.fly();

        //p.谈生意();

        /*

        基本数据类型自动类型提升和强制类型转换

        */

        int i = 10;

        byte b = 20;

        i = b;                        //自动类型提升

        b = (byte)i;                    //强制类型转换

    }

}





class Person {

    String name = "John";

    public void 谈生意() {

        System.out.println("谈生意");

    }

}





class SuperMan extends Person {

    String name = "superMan";





    public void 谈生意() {

        System.out.println("谈几个亿的大单子");

    }





    public void fly() {

        System.out.println("飞出去救人");

    }

}

    

    Person p = new SuperMan();向上转型

    SuperMan sm = (SuperMan)p;向下转型     可以直接看到SuperMan里面的所有东西

2,图解

猜你喜欢

转载自blog.csdn.net/Cricket_7/article/details/92062089