第十四天,java之抽象类

1.抽象类不能被实例化。

2.抽象类中可以没有抽象方法。

3.抽象类中的抽象方法必须被该抽象类的子类实现。

4.有抽象方法的类必须被声明为抽象类。

package abstractClasses;

abstract class Person {
	
	private String name; 
	
	public abstract String getDescription();
	
	public Person(String name) {
		this.name = name;
	}
	
	public String getName() {
		return this.name;
	}

}
package abstractClasses;

import java.time.LocalDate;

class Employee  extends Person {

	private double salary;
	private LocalDate hireDay;
	
	public Employee(String name, double salary, int year,int month ,int day) {
		super(name);
		this.salary = salary;
		this.hireDay = LocalDate.of(year, month, day);
	}

	public double getSalary() {
		return salary;
	}

	public void setSalary(double salary) {
		this.salary = salary;
	}

	public LocalDate getHireDay() {
		return hireDay;
	}

	public void setHireDay(LocalDate hireDay) {
		this.hireDay = hireDay;
	}

	@Override
	public String getDescription() {
		// TODO Auto-generated method stub
		return String.format("an employee with a salary of $%.2f", this.salary);
	}
	
	public void raiseSalary(double byPercent) {
		double raise = this.salary * byPercent/100;
		this.salary += raise;
	}
	
	
}
package abstractClasses;

class Student  extends Person {
	
	private String major;

	public Student(String name, String major) {
		super(name);
		this.major = major;
	}

	public String getMajor() {
		return major;
	}

	public void setMajor(String major) {
		this.major = major;
	}

	@Override
	public String getDescription() {
		// TODO Auto-generated method stub
		return "a student majoring in"+this.major;
	}
	
	
}
package abstractClasses;


class PersonTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Person[] persons = new Person[2];
		
		persons[0] = new Employee("li hua", 10000, 2018, 7, 21);
		persons[1] = new Student("zhao lei", "SoftWare");

		for(Person p : persons) {
			System.out.println(p.getName()+","+p.getDescription());
		}
		
	}

}

猜你喜欢

转载自blog.csdn.net/qq_38006520/article/details/81140049
今日推荐