Java中抽象类的实际应用:模板设计模式

package cn.mldn.demo;


//抽象类的实际应用:模板设计模式
abstract class Person2{
private String name;
private int age;
public Person2() {
}
public Person2(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 void say(){
System.out.println(this.getContent());
}
public abstract String getContent();//定义抽象方法
@Override
public String toString() {
return " 姓名: "+name+ " 年龄: " + age;
}
}
class Student2 extends Person2{
  private float score;
  public Student2() {
  }
public Student2(String name,Integer age,float score) {
super(name,age);//调用父类的有参构造方法
this.score = score;
}
public float getSchool() {
return score;
  }
  public void setSchool(float score) {
this.score= score;
  }
  @Override
  public String toString() {
return "姓名: "+super.getName()+ " 年龄: " + super.getAge()+ " 学校: " + this.score;
  }
@Override
public String getContent() {
return "学生信息-->姓名:"+super.getName()+ " 年龄: " + super.getAge()+ " 学校: " + this.score;
}
}
class Worker extends Person2{
private float salary;
public Worker(String name,Integer age,float salary) {
super(name,age);
this.salary=salary;
}
@Override
public String getContent() {
return "工人信息-->姓名:"+super.getName()+ " 年龄: " + super.getAge()+ "工资: " + this.salary;
}
}
public class AbstractCaseDemo {
public static void main(String[] args) {
Person2 person1=new Student2("张三",20,99.0f);
Person2 person2=new Worker("李四",32,300000.0f);
person1.say();
person2.say();
}
}

你可能感兴趣的:(java)