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


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


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

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

posted on 2015-04-30 10:08  李灵晖  阅读(189)  评论(0编辑  收藏  举报