/*
学生案例
具体事务:基础班学员,就业班学员
共性:姓名,年龄,班级,学习,吃饭
分析:从具体到抽象
基础班学员:
成员变量:姓名、年龄、班级
构造方法:无参、带参
成员方法:学习、吃饭
就业班学员:
成员变量:姓名、年龄、班级
构造方法:无参、带参
成员方法:学习、吃饭
因为有共性的内容,所以提取出一个父类。学生类。
但是由于学习的内容不一样所以,学习方法是抽象法,
而方法是抽象,类就必须定义为抽象的
学员类:
成员变量:姓名、年龄、班级
构造方法:无参、带参
成员方法:学习、吃饭
实现:从抽象到具体
学员类:
成员变量:姓名、年龄、班级
构造方法:无参、带参
成员方法:getXxx()/setXxx(),学习study(抽象方法)、吃饭eat(方法)
基础班学员:
继承自学员类
重写学习方法
就业班学员:
继承自学员类
重写学习方法
*/
//定义抽象学员类
abstract class Student{
//姓名
private String name;
//年龄
private int age;
//班级
private String grand;
public Student(){}
public Student(String name,int age,String grand){
this.name = name;
this.age = age;
this.grand = grand;
}
//getXxx()/setXxx()
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
public String getGrand(){
return grand;
}
public void setGrand(String grand){
this.grand = grand;
}
//学习study(抽象方法)
public abstract void study();
//吃饭eat(具体方法)
public void eat(){
System.out.println("学习累了,去吃饭");
}
}
//定义具体基础班学员类
class BasicStudent extends Student{
public BasicStudent(){}
public BasicStudent(String name,int age,String grand){
super(name,age,grand);
}
public void study(){
System.out.println("基础班学员学习的是JavaSE");
}
}
//定义具体就业班学员类
class WorkStudent extends Student{
public WorkStudent(){}
public WorkStudent(String name,int age,String grand){
super(name,age,grand);
}
public void study(){
System.out.println("就业班学员学习的是JavaEE");
}
}
class AbstractTest3{
public static void main(String[] args){
//基础班学员测试
//多态(测试)
//方式1
Student s = new BasicStudent();
s.setName("小刚");
s.setAge(20);
s.setGrand("bdqn_S1");
System.out.println(s.getName()+"---"+s.getAge()+"---"+s.getGrand());
s.study();
s.eat();
System.out.println("---------------------------------");
//方式2
s = new BasicStudent("小刚",20,"bdqn_S1");
System.out.println(s.getName()+"---"+s.getAge()+"---"+s.getGrand());
s.study();
s.eat();
System.out.println("---------------------------------");
//就业班学员测试
//方式1
s = new WorkStudent();
s.setName("小明");
s.setAge(25);
s.setGrand("bdqn_Y2");
System.out.println(s.getName()+"---"+s.getAge()+"---"+s.getGrand());
s.study();
s.eat();
System.out.println("---------------------------------");
//方式2
s = new BasicStudent("小明",25,"bdqn_Y2");
System.out.println(s.getName()+"---"+s.getAge()+"---"+s.getGrand());
s.study();
s.eat();
System.out.println("---------------------------------");
}
}
面向对象_抽象类练习学员案例
最新推荐文章于 2022-12-08 09:29:45 发布