码迷,mamicode.com
首页 > 其他好文 > 详细

父类引用子类对象

时间:2015-04-30 10:37:18      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:父类   子类   对象   复用   解耦   

先贴上代码


<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


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


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

父类引用子类对象

标签:父类   子类   对象   复用   解耦   

原文地址:http://blog.csdn.net/raylee2007/article/details/45390093

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!