java抽象类的作用
发布于:2019-06-11   作者:admin   浏览:1189次

  java培训主要讲解了java中抽象类与接口的概念、使用及它们之间的区别。这部分知识是属于java语言中核心的知识,是我们理解面向对象思想及代码设计必要掌握的内容。

  假设有一个Employee和Student类,考虑一下对这两个类的扩展。比如每个员工或者学生都有姓名,因此可以将name放在较高层次的超类Person中。另外可以在Person中再添加一个方法getDescription,它可以返回对一个人的描述。因为不知道这个人是学生还是员工,所以该方法是抽象(abstract)的,也就是没有方法体的。

java抽象类的作用

  如下代码:

  publicabstractclassPerson{

  privateStringname;

  publicPerson(Stringname){

  this.name=name;

  }

  publicStringgetName(){

  returnname;

  }

  publicabstractvoidgetDescription();

  }

  抽象类要使用关键字:abstract

  抽象类中除了可以包含抽象方法外,也可以包含具体数据和具体方法。抽象方法充当一个占位的角色。

  扩展抽象类可以有两种选择:

  ?一种是在子类中定义部分抽象方法或不定义抽象方法,这样就必须将子类也标记为抽象类;

  ?另一种是定义全部的抽象方法,这样子类就不是抽象的了。

  类即使不含抽象方法,也可以将类声明为抽象的,不过这样没有什么意义。

  抽象类不能被实例化。也就是说,将一个类声明为abstract,就不能创建这个类的对象了,但是可以创建一个具体子类的对象。需要注意的是,可以定义一个抽象类的对象变量,但是它只能引用非抽象子类的对象:Personp=newStudent();//这里p是一个抽象类Person的变量,但他引用非抽象子类Student的实例。

  publicclassStudentextendsPerson{

  publicStudent(Stringname){

  super(name);

  }

  @Override

  publicvoidgetDescription(){

  System.out.println("我是一个学生!");

  }

  }