abstract
class abstractPerson {
//定义抽象类 人分为工人和学生 此类为共性的方法和属性
private String name;
private int age;
public abstractPerson(String name, int age) {
super();
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.getContentSay());
}
public abstract String getContentSay(); //具体对象有子类单独定义
}
//定义抽象类 人分为工人和学生 此类为共性的方法和属性
private String name;
private int age;
public abstractPerson(String name, int age) {
super();
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.getContentSay());
}
public abstract String getContentSay(); //具体对象有子类单独定义
}
class Student
extends abstractPerson {
private float chengji;
public Student(String name, int age, float chengji) {
super(name, age); // 调用父类中的构造方法
this.chengji = chengji;
}
@Override
public String getContentSay() {
// 子类重写父类中的抽象方法
String info = "姓名-->" + super.getName() + "年龄-->" + super.getAge()
+ "成绩-->" + this.chengji + "\t";
return info;
}
}
private float chengji;
public Student(String name, int age, float chengji) {
super(name, age); // 调用父类中的构造方法
this.chengji = chengji;
}
@Override
public String getContentSay() {
// 子类重写父类中的抽象方法
String info = "姓名-->" + super.getName() + "年龄-->" + super.getAge()
+ "成绩-->" + this.chengji + "\t";
return info;
}
}
class Worker
extends abstractPerson {
private float salary;
public Worker(String name, int age, float salary) {
super(name, age);
this.salary = salary;
}
@Override
public String getContentSay() {
String info = "姓名-->" + super.getName() + "年龄-->" + super.getAge()
+ "工资-->" + this.salary + "\t";
return info;
}
}
private float salary;
public Worker(String name, int age, float salary) {
super(name, age);
this.salary = salary;
}
@Override
public String getContentSay() {
String info = "姓名-->" + super.getName() + "年龄-->" + super.getAge()
+ "工资-->" + this.salary + "\t";
return info;
}
}
public
class FirstDemo {
/**
* 模板设计模式---抽象类的实际应用
* @param args
*/
public static void main(String[] args) {
abstractPerson studentPerson = null; //实例化对象
abstractPerson workerPerson = null;
//通过子类实例化抽象类对象---->多态
studentPerson = new Student( "张三", 20, 98.9f);
workerPerson = new Worker( "老张", 45, 3500.00f);
studentPerson.say(); //调用相关方法,体现多态
workerPerson.say();
}
}
/**
* 模板设计模式---抽象类的实际应用
* @param args
*/
public static void main(String[] args) {
abstractPerson studentPerson = null; //实例化对象
abstractPerson workerPerson = null;
//通过子类实例化抽象类对象---->多态
studentPerson = new Student( "张三", 20, 98.9f);
workerPerson = new Worker( "老张", 45, 3500.00f);
studentPerson.say(); //调用相关方法,体现多态
workerPerson.say();
}
}
转载于:https://blog.51cto.com/haiyuanxi/924141