zoukankan      html  css  js  c++  java
  • 巩固java(五)----通过实例理解java多态

    package duotai;
    class A{
    	public String show(){
    		return "A";
    	}
    }
    
    class B extends A{
    	
    	public String show(){
    		return "B";
    	}
    	public String onlyB(){
    		return "onlyB";
    	}
    	
    }
    
    class C extends B{
    	public String show(){
    		return "C";
    	}
    	
    	public String onlyC(){
    		return "onlyC";
    	}
    }
    
    class D{
    
    	public String show(String item){
    		return "D+"+item;
    	}
    	
    	public int show(int item){
    		return item;
    	}
    }
    
    
    public class Main {
           
    	public static void main(String[] args) {
    		A a = new A();
    		B b = new B();
    		C c = new C();
    		A ab = new B();  
    		A ac = new C();
    		B bc =new C();
    		/*
    		 * B是A的子类,C是B的子类,A中有方法show(),B和C都对其进行了重写。
    		 * 重写是父类与子类多态性的表现,子类的对象调用该方法将调用子类中的定义的此方法,父类中的此方法被屏蔽。
    		 * 1,2,3分别为A,B,C的对象调用该方法,所以返回结果分别为A,B,C
    		 * 
    		 */
    		//1
    		System.out.println("1:a.show()="+a.show());      //输出:1:a.show()=A
    		//2
    		System.out.println("2:b.show()="+b.show());      //输出:2:a.show()=B
    		//3
    		System.out.println("3:c.show()="+c.show());      //输出:3:a.show()=C
    		/*
    		 * 当超类通过声明的引用变量(称其为“对象的引用”其实更合适)调用其子类的对象时,它调用的方法必须是超类中拥有的子类的方法。
    		 *    4中变量ab是由A声明的,引用了B的对象,所以ab.show()调用的是B类中的show()方法;但是如果使用ab变量调用onlyB()
    		 * 是调不到的,因为超类中没有该方法。
    		 * 5,6同4
    		 * 
    		 */
    		//4
            System.out.println("4:ab.show()="+ab.show());    //输出:4:ab.show()=B
            //5
            System.out.println("5:ac.show()="+ac.show());    //输出:5:ac.show()=C
            //6
            System.out.println("6:bc.show()="+bc.show());    //输出:6:bc.show()=C
            
            /*
             * 在D中有两个show方法,但它们的参数和返回值不同,这是方法的重载。
             * 重载是一个类中多态性的一种表现,方法名相同,但参数的个数、类型,返回值至少有一个不同。
             * 
             */
            D d =new D();
            //7
            System.out.println("7:d.show(itemStr)="+d.show("dd"));   //7:d.show(itemStr)=D+dd
            //8
            System.out.println("8:d.show(itemInt)="+d.show(1));      //8:d.show(itemInt)=1
    	}
           
           
    }
    

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    与众不同 windows phone (50)
    与众不同 windows phone (49)
    重新想象 Windows 8.1 Store Apps (93)
    重新想象 Windows 8.1 Store Apps 系列文章索引
    重新想象 Windows 8.1 Store Apps (92)
    重新想象 Windows 8.1 Store Apps (91)
    重新想象 Windows 8.1 Store Apps (90)
    重新想象 Windows 8.1 Store Apps (89)
    重新想象 Windows 8.1 Store Apps (88)
    重新想象 Windows 8.1 Store Apps (87)
  • 原文地址:https://www.cnblogs.com/dingxiaoyue/p/4931760.html
Copyright © 2011-2022 走看看