Java抽象类

一,如何定义抽象类?

  class关键字前加abstract

二,抽象类无法被实例化(无法通过new来创建对象),它的实现只能依靠继承关系,通过子类的实例化来实现自身的实例化。

三,抽象类虽然没有办法实例化,但是抽象类也有构造方法,该构造方法是给子类创建对象用的。  

  1. abstract class Person { //定义一个抽象类,必须被继承
  2.  
     
  3.  
    public Person(){
  4.  
    System.out.println("调用的是父类的无参构造函数");
  5.  
    }
  6.  
    public Person(int i) {
  7.  
    System.out.println("调用的是父类的有参构造函数");
  8.  
    }
  9.  
    }
  10.  
     
  11.  
    class Student extends Person {
  12.  
    // 想调用父类抽象类的有参构造函数必须先显式声明,然后通过super函数调用
  13.  
    Student(int i) {
  14.  
    super(i);
  15.  
    //必须显示的调用父类构造方法,super代表父类对象
  16.  
    System.out.println("子类的有参构造函数\n");
  17.  
    }
  18.  
     
  19.  
    //默认调用父类的无参构造函数,同样必须显式声明
  20.  
    Student(){
  21.  
    System.out.println("子类的无参构造函数");
  22.  
    }
  23.  
    }
  24.  
    public class Test {
  25.  
    public static void main(String[] args) {
  26.  
    int i=0;
  27.  
    Student 有参 = new Student(i);
  28.  
    Student 无参 = new Student();
  29.  
     
  30.  
     
  31.  
    }
  32.  
    }

四,抽象类中可以定义抽象方法。

  *抽象方法的语法:在方法的修饰符列表添加abstract关键字。并且该抽象方法应该以“ ;”结束,不能带有“ { } ”。(注:抽象类不能被final修饰)

  例如:public  abstract  void  m1( ) ;

五,一个非抽象的类继承抽象类,必须将抽象类中的抽象方法覆盖,实现,重写

posted @ 2020-06-04 08:10  徐阶  阅读(132)  评论(0编辑  收藏  举报