:
(一)、使用抽象类和抽象方法模拟不同人种
世界上有很多人种,例如中国人、美国人等,他们所说的语言各不相同。不管是什么人种,他们都是人类
世界上有很多人种,例如中国人、美国人等,他们所说的语言各不相同。不管是什么人种,他们都是人类
实现步骤:
(1) 创建一个抽象类Person,属性:name 和age
(2) 在Person 类中定义一个抽象方法say()
(3) 创建Chinese 类继承Person
(4) 创建American 类继承Person
(1) 创建一个抽象类Person,属性:name 和age
(2) 在Person 类中定义一个抽象方法say()
(3) 创建Chinese 类继承Person
(4) 创建American 类继承Person
package aaaw;
public abstract class Person {
public String name;
public int age;
public abstract void say() ;
public String name;
public int age;
public abstract void say() ;
}
package aaaw;
public class Chiness extends Person{
@Override
public void say() {
// TODO Auto-generated method stub
System.out.println("说中文");
}
@Override
public void say() {
// TODO Auto-generated method stub
System.out.println("说中文");
}
}
package aaaw;
package aaaw;
public class American extends Person{
@Override
public void say() {
// TODO Auto-generated method stub
System.out.println("说英语");
}
@Override
public void say() {
// TODO Auto-generated method stub
System.out.println("说英语");
}
}
(二)、雇员示例:
需求:
公司中程序员有姓名、工号、薪水、工作内容。
项目经理除了有姓名、工号、薪水、还有奖金、工作内容。
对给出需求进行数据建模。
需求:
公司中程序员有姓名、工号、薪水、工作内容。
项目经理除了有姓名、工号、薪水、还有奖金、工作内容。
对给出需求进行数据建模。
分析:
在这个问题领域中,先找出设计的对象。通过提炼法。
程序员Programmer:
属性:姓名name、工号id、薪水sal
行为:工作work
在这个问题领域中,先找出设计的对象。通过提炼法。
程序员Programmer:
属性:姓名name、工号id、薪水sal
行为:工作work
经理Manager:
属性:姓名name、工号id、薪水sal、奖金bouns。
行为:工作work
属性:姓名name、工号id、薪水sal、奖金bouns。
行为:工作work
序员和经理都属性公司员工,共性资源可以进行抽取。因为他们都是公司的雇员可以将程序员和经理进行抽取,建立体系。
abstract class Employee{
private String name;
private String id;
private double pay;
Employee(String name,String id,double pay){
this.name = name;
this.id = id;
this.pay = pay;
}
public abstract void work();
}
//描述程序员
class Programmer extends Employee{
Programmer(String name,String id,double pay){
super(name,id,pay);
}
public void work(){
System.out.println("code ...");
}
}
//描述经理
class Manager extends Employee{
private int bouns;
Manager(String name,String id,double pay,int bounus){
super(name,id,pay);
this.bouns = bouns;
}
public void work(){
System.out.println("manager");
}
}
public class AbstractTest {
/**
* @param args
*/
publi
private String name;
private String id;
private double pay;
Employee(String name,String id,double pay){
this.name = name;
this.id = id;
this.pay = pay;
}
public abstract void work();
}
//描述程序员
class Programmer extends Employee{
Programmer(String name,String id,double pay){
super(name,id,pay);
}
public void work(){
System.out.println("code ...");
}
}
//描述经理
class Manager extends Employee{
private int bouns;
Manager(String name,String id,double pay,int bounus){
super(name,id,pay);
this.bouns = bouns;
}
public void work(){
System.out.println("manager");
}
}
public class AbstractTest {
/**
* @param args
*/
publi