黑马程序员技术交流社区
标题:
Student作为父类,基础班学生,就业办学生作为子类,实现...
[打印本页]
作者:
威威是超人
时间:
2016-9-9 23:48
标题:
Student作为父类,基础班学生,就业办学生作为子类,实现...
/*
需求:2: 学生案例,使用多态和抽象类实现
•具体事务:基础班学员,就业班学员
•共性:姓名,年龄,班级,学习,吃饭
思路:1.父类为学生,子类有基础班学员和就业班学员
2.父类:成员变量1.姓名
2.年龄
3.班级
成员方法:
1.学习
2.吃饭
3.基础班学员:成员变量1.学号
4.就业班学员:成员变量1.学号
*/
abstract class Student{
//成员变量
private String name;
private int age;
private String classs;
//成员方法
abstract void study();
abstract void eat();
//构造方法
Student(){}
Student(String name,int age,String classs){
this.name=name;
this.age=age;
this.classs=classs;
}
//set方法
public void setName(String name){
this.name=name;
}
public void setAge(int age){
this.age=age;
}
public void setClasss(String classs){
this.classs=classs;
}
//get方法
public String getName(){
return name;
}
public int getAge(){
return age;
}
public String getClasss(){
return classs;
}
//show方法
public void show(){
System.out.print(getName()+" "+getAge()+" "+getClasss()+" ");
}
}
//基础班学员类
class BaseClass extends Student{
//成员变量
private int baseClassId;
//构造函数
BaseClass(){}
BaseClass(String name,int age,String classs,int baseClassId){
super(name,age,classs);
this.baseClassId=baseClassId;
}
//对study重写
public void study(){
System.out.println("基础班学生学习基础知识");
}
//对eat方法重写
public void eat(){
System.out.println("基础班吃板面");
}
//set方法
public void setBaseClassId(int baseClassId){
this.baseClassId=baseClassId;
}
//get方法
public int getBaseClassId(){
return baseClassId;
}
//对show方法重写
public void show(){
super.show();
System.out.println(getBaseClassId());
}
}
//就业班学员类
class EmploymentClass extends Student{
//成员变量
private int employmentClassId;
//构造函数
EmploymentClass(){}
EmploymentClass(String name,int age,String classs,int employmentClassId){
super(name,age,classs);
this.employmentClassId=employmentClassId;
}
//对study重写
public void study(){
System.out.println("就业班学生学习就业知识");
}
//对eat方法重写
public void eat(){
System.out.println("就业班班吃脆皮鸡");
}
//set方法
public void setEmploymentClassId(int employmentClassId){
this.employmentClassId=employmentClassId;
}
//get方法
public int getEmploymentClassId(){
return employmentClassId;
}
//对show方法重写
public void show(){
super.show();
System.out.println(getEmploymentClassId());
}
}
//测试类
class TestDemo{
public static void main(String [] args){
//调用方法一:创建对象通过show方法显示
BaseClass bc=new BaseClass("董威",23,"传智基础班六期",8252);//基础班
bc.show();
bc.study();
bc.eat();
System.out.println("**************");
EmploymentClass ec=new EmploymentClass("威威是超人",23,"黑马就业班六期",6666);
ec.show();
ec.study();
ec.eat();
System.out.println("------------------------------------");
//调用方法二:创建对象通过set、get方法使用
BaseClass bc1=new BaseClass();
bc1.setName("刘涛");
bc1.setAge(25);
bc1.setClasss("传智基础六班");
bc1.setBaseClassId(7777);
System.out.println(bc1.getName()+" "+bc1.getAge()+" "+bc1.getClasss()+" "+bc1.getBaseClassId());
bc1.study();
bc1.eat();
System.out.println("**************");
EmploymentClass ec1=new EmploymentClass();
ec1.setName("小涛");
ec1.setAge(25);
ec1.setClasss("黑马就业六班");
ec1.setEmploymentClassId(8888);
System.out.println(ec1.getName()+" "+ec1.getAge()+" "+ec1.getClasss()+" "+ec1.getEmploymentClassId());
ec1.study();
ec1.eat();
System.out.println("--------------------------------------");
//多态使用
method(new BaseClass("柳岩",30,"传智基础六班",9999));
method(new EmploymentClass("小岩岩",30,"黑马就业六班",8888));
}
public static void method(Student s){
System.out.print(s.getName()+" "+s.getAge()+" "+s.getClasss()+" ");
if (s instanceof BaseClass){
BaseClass bc=(BaseClass)s;//基础班特有的学号
System.out.println(bc.getBaseClassId());
}
if(s instanceof EmploymentClass){
EmploymentClass ec=(EmploymentClass)s;//就业班特有的学号
System.out.println(ec.getEmploymentClassId());
}
s.study();
s.eat();
}
}
QQ图片20160909234900.png
(12.2 KB, 下载次数: 15)
下载附件
2016-9-9 23:48 上传
作者:
威威是超人
时间:
2016-9-9 23:52
欢迎大家指正{:2_43:}{:2_43:}{:2_30:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2