zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然JAVA面向对象高级编程学习笔记:对象的多态性

    class A{                    // 定义类A
        public void fun1(){        // 定义fun1()方法
            System.out.println("A --> public void fun1(){}") ;
        }
        public void fun2(){
            this.fun1() ;        // 调用fun1()方法
        }
    };
    class B extends A{
        public void fun1(){        // 此方法被子类覆写了
            System.out.println("B --> public void fun1(){}") ;
        }
        public void fun3(){
            System.out.println("B --> public void fun3(){}") ;
        }
    };
    public class PolDemo01{
        public static void main(String asrgs[]){
            B b = new B() ;        // 实例化子类对象
            A a = b ;            // 向上转型关系
            a.fun1() ;            // 此方法被子类覆写过
            a.fun3() ;
        }
    };
    class A{                    // 定义类A
        public void fun1(){        // 定义fun1()方法
            System.out.println("A --> public void fun1(){}") ;
        }
        public void fun2(){
            this.fun1() ;        // 调用fun1()方法
        }
    };
    class B extends A{
        public void fun1(){        // 此方法被子类覆写了
            System.out.println("B --> public void fun1(){}") ;
        }
        public void fun3(){
            System.out.println("B --> public void fun3(){}") ;
        }
    };
    public class PolDemo02{
        public static void main(String asrgs[]){
            A a = new B() ;            // 向上转型关系
            B b = (B)a ;        // 发生了向下转型关系
            b.fun1() ;
            b.fun2() ;
            b.fun3() ;
        }
    };
    class A{                    // 定义类A
        public void fun1(){        // 定义fun1()方法
            System.out.println("A --> public void fun1(){}") ;
        }
        public void fun2(){
            this.fun1() ;        // 调用fun1()方法
        }
    };
    class B extends A{
        public void fun1(){        // 此方法被子类覆写了
            System.out.println("B --> public void fun1(){}") ;
        }
        public void fun3(){
            System.out.println("B --> public void fun3(){}") ;
        }
    };
    public class PolDemo03{
        public static void main(String asrgs[]){
            A a = new A() ;            // 实例化了一个父类对象
            B b = (B)a ;        // 发生了向下转型关系
            b.fun1() ;
            b.fun2() ;
            b.fun3() ;
        }
    };
    class A{                    // 定义类A
        public void fun1(){        // 定义fun1()方法
            System.out.println("A --> public void fun1(){}") ;
        }
        public void fun2(){
            this.fun1() ;        // 调用fun1()方法
        }
    };
    class B extends A{
        public void fun1(){        // 此方法被子类覆写了
            System.out.println("B --> public void fun1(){}") ;
        }
        public void fun3(){
            System.out.println("B --> public void fun3(){}") ;
        }
    };
    class C extends A{
        public void fun1(){        // 此方法被子类覆写了
            System.out.println("C --> public void fun1(){}") ;
        }
        public void fun5(){
            System.out.println("C --> public void fun5(){}") ;
        }
    };
    public class PolDemo04{
        public static void main(String asrgs[]){
            fun(new B()) ;    // 传递B的实例
            fun(new C()) ;    // 传递B的实例
        }
        public static void fun(B b){
            b.fun1() ;        // 调用覆写父类中的fun1()方法
        }
        public static void fun(C c){
            c.fun1() ;        // 调用覆写父类中的fun1()方法
        }
    };
    class A{                    // 定义类A
        public void fun1(){        // 定义fun1()方法
            System.out.println("A --> public void fun1(){}") ;
        }
        public void fun2(){
            this.fun1() ;        // 调用fun1()方法
        }
    };
    class B extends A{
        public void fun1(){        // 此方法被子类覆写了
            System.out.println("B --> public void fun1(){}") ;
        }
        public void fun3(){
            System.out.println("B --> public void fun3(){}") ;
        }
    };
    class C extends A{
        public void fun1(){        // 此方法被子类覆写了
            System.out.println("C --> public void fun1(){}") ;
        }
        public void fun5(){
            System.out.println("C --> public void fun5(){}") ;
        }
    };
    public class PolDemo05{
        public static void main(String asrgs[]){
            fun(new B()) ;    // 传递B的实例
            fun(new C()) ;    // 传递B的实例
        }
        public static void fun(A a){
            a.fun1() ;        // 调用覆写父类中的fun1()方法
        }
    };
  • 相关阅读:
    String数组转换成Integer数组
    码云远程仓库用户名和密码修改了,本地如何删除修改?
    Git操作过程(码云)
    SpringCloud应用之配置中心Nacos
    SpringCloud应用之网关GateWay
    SpringCloud应用之熔断器Hystrix
    SpringCloud应用之服务调用Feign
    装饰者设计模式
    Spring 自动装配及其注解
    Spring Bean自动装配有哪些方式?
  • 原文地址:https://www.cnblogs.com/tszr/p/12153018.html
Copyright © 2011-2022 走看看