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()方法
        }
    };
  • 相关阅读:
    如何实现进程间的通信
    调试手记
    WinCE的一些忠告——UNICODE编码
    一道字符串复制的面试题目
    strcpy和strncpy区别
    关于#include头文件问题
    rs232串口通讯中,读串口与读端口的区别
    IP包过滤(转)
    小数点后截位问题
    一些函数
  • 原文地址:https://www.cnblogs.com/tszr/p/12153018.html
Copyright © 2011-2022 走看看