zoukankan      html  css  js  c++  java
  • java基础入门-父类引用子类对象

    先贴上代码


    <pre name="code" class="java">package com.ray.object;
    
    /**
     * 父类引用子类对象
     * 
     * @author ray
     * @since 2015-04-30
     * @version 1.0
     * 
     */
    public class Test {
    
    	class Person {
    
    		public void say() {
    			System.out.println("i am a person");
    		}
    	}
    
    	class Man extends Person {
    
    		@Override
    		public void say() {
    			System.out.println("i am a man");
    		}
    	}
    
    	class Woman extends Person {
    
    		@Override
    		public void say() {
    			System.out.println("i am a woman");
    		}
    	}
    
    	public Person getType(Person person) {
    		return person;
    	}
    
    	public static void main(String[] args) {
    		Person person = new Test().getType(new Test().new Person());
    		//好处:
    		//1.解耦,person所对应的子类发生改变,但是下面这一句person.say();一直是不变的
    		//2.代码复用
    		person.say();
    		person = new Test().getType(new Test().new Man());
    		person.say();
    		person = new Test().getType(new Test().new Woman());
    		person.say();
    	}
    
    }
    


    
    

    输出:

    i am a person
    i am a man

    i am a woman


    在上面的例子我们可以看到,父类引用子类对象,参数虽然变化了,但是下面的代码却没有改变,这就是解耦,降低耦合性,当然还有代码的复用


    如果再扩展一下,我们会说到接口、说到简单工厂的设计模式,但是这里暂时不聊,等后面学到了再详细展开

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

  • 相关阅读:
    docker 安装 nexus3 初始密码不再是admin123
    eclipse中Tomcat修改项目名称
    WAMP3.1.3自定义根目录
    git学习笔记
    小米和MAC触摸板手势汇总
    IDEA快捷键汇总
    servelet 实现Post接口访问
    LeetCode:Jump Game II
    LeetCode:Trapping Rain Water
    LeetCode: Container With Most Water
  • 原文地址:https://www.cnblogs.com/raylee2007/p/4774578.html
Copyright © 2011-2022 走看看