/**
需求:用抽象类的形式把下面的内容代码化
具体事物:基本班学员,就业班学员
共性:姓名,学习,休假
思路:基础班学员和就业班学员可以抽象为学员类。
学员共有的属性:姓名。
基础班和就业班学员学习内容不同,所以需要定义抽象方法,因此学员类必须为抽象类。又因为学员休假方法不是共性,
定义一个休假接口供学员来实现休假。
*/
/**休假*/
interface XiuJia
{
public abstract void xiuJia();
}
/**学员类*/
abstract class Student1
{
private String name;
/**无参构造*/
public Student1(){
return;
}
public abstract void study();
/**设置姓名*/
public void setName(String name){
this.name = name;
return;
}
/**获取姓名*/
public String getName(){
return name;
}
}
/**基础班学员*/
class BaseStudent extends Student1 implements XiuJia
{
/**无参构造*/
public BaseStudent(){
return;
}
/**方法重写*/
public void study(){
System.out.println("学习JavaSE");
}
/**方法重写*/
public void xiuJia(){
System.out.print("休假");
}
}
/**就业班学员*/
class WorkStudent extends Student1 implements XiuJia
{
/**无参构造*/
public WorkStudent(){
return;
}
/**方法重写*/
public void study(){
System.out.println("学习Android开发");
}
public void xiuJia(){
System.out.println("没有休假");
}
}
/**测试类*/
class Student1Test
{
public static void main(String[] args){
Student1 s = new BaseStudent();
BaseStudent bs = (BaseStudent) s;
bs.setName("基础班学员张三");
System.out.println(bs.getName());
bs.study();
bs.xiuJia();
System.out.println();
System.out.println("------------");
Student1 s1 = new WorkStudent();
WorkStudent ws = (WorkStudent) s1;
ws.setName("就业班学员李四");
System.out.println(ws.getName());
ws.study();
ws.xiuJia();
}
}
|
|