现在,再增加一个getDescription方法,它可以返回对一个人的简单描述,例如:
一个雇员年薪10万元
一个学生的专业是计算机科学与技术
在Employee和Student类中实现这个方法非常容易,但是在Person类中应该提供什么内容呢?除了姓名之外,Person类一无所知,当然,可以让Persong.getDescription()返回一个空字符串,然而还有一个更好的方法,就是使用abstract关键字,这样就完全不需要实现这个方法了:
public abstract String getDescription();//不需要实现方法
这里,为了提高程序的清晰性,包含一个或者多个抽象方法的类本身必须被声明为抽象的。 abstract class Person
{
public abstract String getDescription();
}
除了抽象方法之外,抽象类还可以包含具体数据和具体方法,例如,Person类还保存着姓名和一个返回姓名的具体方法: abstract class Person
{
private String name;
public Person(Stirng n)
{
name=n;
}
public String getName()
{
return name;
}
public abstract String getDescription();
}
2.抽象类在实际中的运用:
实际中用到最多的是在抽象类中定义全部的抽象方法,这样一来,子类中就不是抽象的了。下面这段代码句式通过抽象类Person扩展一个具体的子类Student
class Studeng extends Person
{
private Stirng major;