一、简介

描述:

  • 'abstract'修饰符可以用来修饰方法,也可以修饰类。
  • 如果修饰方法,那么该方法就是抽象方法;如果修饰类,那么该类就是抽象类
  • 抽象类和抽象方法起到一个框架作用,方便后期扩展的重写和调用。

注意:

  • 抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类

示例:

/* 抽象类的命名规范为以Base或Abstract开头 */
public abstract class BasePerson {
    /* 抽象方法,没有方法实现 */
    public abstract void doSomething();

    public void say() {
        System.out.println("person");
    }
}




二、抽象方法

描述:

  • 声明方法的时候,加上'abstract'修饰符,并且去掉方法的大括号,同时结尾加上分号,该方法就是抽象方法
  • 抽象方法只有方法的声明,没有方法的实现(没有方法体),它是用来让子类实现的。

作用:

  • 抽象方法是为了程序的可扩展性,重写抽象方法可实现方法同名但又非同目的的要求。
  • 定义抽象方法,在需要时继承后重写调用,可以省去很多代码。




三、抽象类

描述:

  • 声明类的同时,加上'abstract'修饰符就是抽象类
  • 抽象类不能使用'new'关键字来创建对象,它是用来让子类继承的。

注意:

  • 子类继承抽象类后,需要实现抽象类中没有实现的抽象方法,否则这个子类也要声明为抽象类。
  • 抽象类不能被实例化,但有构造器,会在子类实例化时调用,是用来实现多态中的共同点构造,一般不建议使用。

示例:

public abstract class BasePerson {
    public abstract void doSomething();
}
/* 子类继承抽象类后,需要实现抽象类中没有实现的抽象方法。 */
class Student extends BasePerson {
    public void doSomething() {
        System.out.println("doSomething");
    }
}




内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/conyoo/p/14051952.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!