多态实例

/*
基础班同学:
	学习,睡觉
高级班同学:
	学习、睡觉
*/

abstract class Student
{
	public abstract void study();
	public void sleep()
	{
		System.out.println("躺着睡");
	}
}

class BaseStudent extends Student
{
	public void study()
	{
		System.out.println("baseStudent");
	}
	public void sleep()								//如果没有覆写父类的sleep方法,子类对象在调用方法的时候调用父类的sleep方法。
	{
		System.out.println("站着睡");
	}
}
class Factory
{
	public void DoSomething(Student stu)                //此处要求Student类中的方法才能使用,子类的方法不能使用。子类方法需要对此方法进行覆写,
	{
		stu.study();              
		stu.sleep();
	}
}
class  Duotai
{
	public static void main(String[] args) 
	{
		Student stu=new BaseStudent();              //一个对象的多态,基础班的学生是基础班类型也是学生类型。父类的引用指向了自己的子类对象。
		stu.study();
		stu.sleep();
		Factory fc=new Factory();
		fc.DoSomething(new BaseStudent());		
	}
}

posted @ 2015-01-03 10:20  静以养身 俭以养德  阅读(129)  评论(0编辑  收藏  举报