用一下UML建模工具Rational Rose以及类图的基本关系



.
基本的类图关系:


用一下UML建模工具Rational Rose以及类图的基本关系


编码实现:

package com.cdl.classDiagram;

public interface IPrePerson {

	//以前的人只会吃喝睡觉
	public void eat();
	public void sleep();
}



package com.cdl.classDiagram;

/**
 * 扩展接口PrePerson
 * 
 * @author Administrator
 * 
 */
public interface IModernPerson extends IPrePerson {

	// 现代人除了吃和睡,还要运动
	public void doSports();
}



package com.cdl.classDiagram;

public abstract class AbstractCommonPerson implements IModernPerson {

	// ----------实现了的公共部分放在抽象类中----------

	// 大家都会有名字吧,所以这个是公共的
	String firstName = null;
	String lastName = null;

	@Override
	public void doSports() {
		System.out.println("现代人生活好了后必须运动!");
	}

	@Override
	public void eat() {
		System.out.println("现代人和原始人一样必须吃!");
	}

	@Override
	public void sleep() {
		System.out.println("现代人和原始人一样必须睡觉!");
	}

	// ----------再次定义必须但没有实现的功能或者服务----------

	// 显示自己的职业
	public abstract void showBusiness();
}



package com.cdl.classDiagram;

public class Student extends AbstractCommonPerson {

	public Student(String firstNamePara, String lastNamePara) {
		this.firstName = firstNamePara;
		this.lastName = lastNamePara;
	}

	@Override
	public void showBusiness() {
		System.out.println("我是" + this.firstName + "同学,你们可以叫我" + this.lastName
				+ ",我的职业就是学习和创新!");
	}

}



package com.cdl.classDiagram;

public class Teacher extends AbstractCommonPerson {

	public Teacher(String firstNamePara, String lastNamePara) {
		this.firstName = firstNamePara;
		this.lastName = lastNamePara;
	}

	@Override
	public void showBusiness() {
		System.out.println("我是" + this.firstName + "老师,你们可以叫我" + this.lastName
				+ ",我的职业就是教育学生!");
	}

}



测试类:

package com.cdl.classDiagram;

public class ClassDiagramTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		// 测试学生类,指向学生
		AbstractCommonPerson student = new Student("Cai", "Deliang");
		testPerson(student);

		// 测试老师类,指向老师
		AbstractCommonPerson teacher = new Teacher("Zhang", "Yiping");
		testPerson(teacher);

	}

	/**
	 * 调用抽象类中公共的服务
	 * 
	 * @param person
	 *            传递进来的指向对象,可以是指向的老师也可以是指向的学生
	 */
	private static void testPerson(AbstractCommonPerson person) {
		person.showBusiness();
		person.eat();
		person.sleep();
		person.doSports();
		System.out.println("------------分割线-------------");
	}
}



输出结果:
我是Cai同学,你们可以叫我Deliang,我的职业就是学习和创新!
现代人和原始人一样必须吃!
现代人和原始人一样必须睡觉!
现代人生活好了后必须运动!
------------分割线-------------
我是Zhang老师,你们可以叫我Yiping,我的职业就是教育学生!
现代人和原始人一样必须吃!
现代人和原始人一样必须睡觉!
现代人生活好了后必须运动!
------------分割线-------------




你可能感兴趣的:(java,生活,教育,ITeye,UML)