20.Java-抽象设计

抽象方法

使用abstract修饰且没有方法体的方法,称为抽象方法

特点:
  • 1.使用抽象++abstract++修饰,方法没有方法体,留给子类去实现/覆盖
  • 2.抽象方法修饰符不能是private和final以及static
  • 3.抽象方法必须定义在抽象类或者接口中

一般的:习惯性把abstract写在方法修饰符最前面,一看就知道是抽象方法

public abstract class AbstractGraph{
    abstract public double getArea();
}

子类必须覆写抽象方法,否则编译会报错

public class Point extends Graph{
    public double getArea(){
        return 0D;
    }
}
抽象类

使用abstract关键字修饰的类。

特点:
  • 不能创建实例。既不能new一个抽象类,即使创建出抽象类对象,调用抽象方法,根本没有方法体。
  • 可以不包含抽象方法,若一旦包涵,该类必须作为抽象类,抽象类可以包含普通方法
  • 若子类没有实现父类所有的抽象方法,那么子类必须是抽象类(抽象派生类).
  • 抽象类的构造方法不能都定义为私有的
  • 抽象类不能使用final修饰(final不能有子类,而抽象类必须得有子类)。
  • 抽象类是不完整的类,需作为基类,必须要有子类功能才能得以实现。
什么时候使用抽象类

如果有多个类具有相同的方法声明,但具体实现不一样,此时创建一个抽象类,将类作为该抽象类的子类,子类中相同声明的方法在父类中声明成抽象方法,然后在各个子类中覆写抽象方法完成不同的实现细节。有的时候,为了防止实例化某一个类,我们也可以把该类作为抽象类

抽象类和普通类的区别

不能创建对象,允许(但不强制)包含抽象方法
一般的习惯把抽象类的类名都是使用abstract作为前缀,其目的是一眼就能看出是抽象类。

模板方法模式应用的简单规则:

抽象父类负责定义操作中的业务骨架,而把某些具体的实现步骤延迟到子类中去实现

抽象父类至少提供的方法:
  • 模板方法:一种通用的处理方式,即模板;
  • 抽象方法:一种具体的业务功能实现,由子类完成;
    注意:抽象父类提供的模板方法只是定义了一个通用算法.其实现必须依赖子类的辅助。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,198评论 18 399
  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-java.h...
    eddy_wiki阅读 4,941评论 0 5
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 9,835评论 1 44
  • 临近过年,我就想到了很多大龄适婚的单身青年的苦楚,免不得被长辈催找对象。没对象的要找对象,有对象的要被催婚...
    隔水望伊人阅读 4,162评论 1 51
  • 思慕许姐阅读 1,333评论 0 0

友情链接更多精彩内容