• 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


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


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

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

  • 相关阅读:
    基于python实现自动化办公学习笔记一
    [django]上下文管理器
    [django]中间件
    分布式锁实现
    为什么Redis可以方便地实现分布式锁
    索引字段说明
    COUNT 和 IFNULL函数
    占用空间区别
    java排序算法(七):折半插入排序
    java排序算法(六):直接插入排序
  • 原文地址:https://www.cnblogs.com/raylee2007/p/4774578.html
Copyright © 2020-2023  润新知