java代码---抽象类的实现

定义一个抽象的"Role"类,有姓名,年龄,性别等成员变量 
1)要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有), 
再通过GetXXX()和SetXXX()方法对各变量进行读写。具有一个抽象的play()方法, 
该方法不返回任何值,同时至少定义两个构造方法。Role类中要体现出this的几种用法。 
2)从Role类派生出一个"Employee"类,该类具有Role类的所有成员(构造方法除外), 
并扩展salary成员变量,同时增加一个静态成员变量“职工编号(ID)”。 
同样要有至少两个构造方法,要体现出this和super的几种用法,还要求覆盖play()方法, 
并提供一个final sing()方法。 
3)"Manager"类继承"Employee"类,有一个final成员变量"vehicle" 

在main()方法中制造Manager和Employee对象,并测试这些对象的方法。

 
 
abstract class Role{
	private String name;                    //私有属性
	private int age;
	private String sex;
	public String info ="i am dad!";
	public String getName(){
		return this.name;
	}
	public void setName(String name){
		this.name = name;
	}
		public int getAge(){
		return this.age;
	}
	public void setAge(int age){
		this.age = age;
	}
		public String getSex(){
		return this.sex;
	}
	public void setSex(String sex){        //set get方法
		this.sex = sex;
	}
	public abstract void play();            //抽象方法
	public Role(String name,int age,String sex){
		this.name = name;
		this.age = age;
		this.sex = sex;
	}

}
class Employee extends Role{                   //继承
	private double salary;                 //私有属性
	private static String ID;
	public String info = "i am son!";
	public double getSalary(){
		return this.salary;
	}
	public void setSalary(double salary){
		this.salary = salary;
	}
	public String getID(){
		return this.ID;
	}
	public void setID(String id){
		this.ID = id;
	}
	public Employee(String name,int age,String sex,double salary,String ID){
		super(name,age,sex);
		this.salary = salary;
		this.ID = ID;
	}
	public void play(){
			System.out.println(super.info);
		System.out.println(this.info);
	}
	final void sing(){
		System.out.println("name:"+this.getName()+
			"\nsex:"+this.getSex()+
			"\nage:"+this.getAge()+
			"\nsalary:"+this.getSalary());
	}
}
class Manager extends Employee{                    //继承
	final String vehicle;
	public Manager(String name,int age,String sex,double salary,String ID,String vehicle){
		super(name,age,sex,salary,ID);
		this.vehicle = "自行车";
	}
}
public class TestAbstract{                        //主方法
	public static void main(String[] args) {
		Employee e = new Employee("GOGING",26,"男",9000,"010");
		e.play();
		e.sing();
		Manager m = new Manager("cleavlove",24,"男",10000,"001"," ");
		m.play();
		m.sing();
		System.out.println("\n\n\n");
	}
}


猜你喜欢

转载自blog.csdn.net/devil_net/article/details/79818000
今日推荐