/*
老师案例
具体事物:基础班老师、就业班老师
共性:姓名、年龄、讲课
分析:从具体到抽象
基础班老师:
成员变量:姓名、年龄
构造方法:无参、带参
成员方法:teach();(JavaEE)
就业班老师:
成员变量:姓名、年龄
构造方法:无参、带参
成员方法:teach();(JavaSE)
老师:
成员变量:姓名、年龄
构造方法:无参、带参
成员方法:teach();
实现:从抽象到具体
老师:
成员变量:姓名、年龄
构造方法:无参、带参
成员方法:getXxx()/setXxx();teach();
基础班老师:
继承自老师类
重写讲课方法
就业班老师:
继承自老师类
重写讲课方法
*/
//定义抽象老师类
abstract class Teacher{
//姓名
private String name;
//年龄
private int age;
public Teacher(){}
public Teacher(String name,int age){
this.name = name;
this.age = age;
}
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 abstract void teach();
}
//定义基础班老师具体类
class BasicTeacher extends Teacher{
public BasicTeacher(){}
public BasicTeacher(String name,int age){
super(name,age);
}
public void teach(){
System.out.println("基础班老师讲解JavaSE");
}
}
//定义就业班老师具体类
class WorkTeacher extends Teacher{
public WorkTeacher(){}
public WorkTeacher(String name,int age){
super(name,age);
}
public void teach(){
System.out.println("就业班老师讲解JavaEE");
}
}
class AbstractTest2{
public static void main(String[] args){
//具体类测试
//基础班老师
//方式1
BasicTeacher b = new BasicTeacher();
b.setName("小刚");
b.setAge(33);
System.out.println(b.getName()+"---"+b.getAge());
b.teach();
System.out.println("-------------------------");
//方式2
BasicTeacher b2 = new BasicTeacher("小明",45);
System.out.println(b2.getName()+"---"+b2.getAge());
b2.teach();
System.out.println("-------------------------");
//就业班老师
//方式1
WorkTeacher wt = new WorkTeacher();
wt.setName("小刚");
wt.setAge(33);
System.out.println(wt.getName()+"---"+wt.getAge());
wt.teach();
System.out.println("-------------------------");
//方式2
WorkTeacher wt2 = new WorkTeacher("小明",45);
System.out.println(wt2.getName()+"---"+wt2.getAge());
wt2.teach();
System.out.println("-------------------------");
//测试(多态)
//基础班老师
//方式1
Teacher t = new BasicTeacher();
t.setName("小刚");
t.setAge(33);
System.out.println(t.getName()+"---"+t.getAge());
t.teach();
System.out.println("-----------------------------");
//方式2
t = new BasicTeacher("小明",45);
System.out.println(t.getName()+"---"+t.getAge());
t.teach();
System.out.println("-----------------------------");
//就业班老师
//方式1
t = new WorkTeacher();
t.setName("小刚");
t.setAge(33);
System.out.println(t.getName()+"---"+t.getAge());
t.teach();
System.out.println("-----------------------------");
//方式2
t = new WorkTeacher("小明",45);
System.out.println(t.getName()+"---"+t.getAge());
t.teach();
}
}
面向对象_抽象类练习老师案例
最新推荐文章于 2024-05-03 09:00:00 发布