抽象类
  (1)如果多个类中存在相同的方法声明,而方法体不一样,我们就可以只提取方法声明。
    如果一个方法只有方法声明,没有方法体,那么这个方法必须用抽象修饰。
    而一个类中如果有抽象方法,这个类必须定义为抽象类。
  (2)抽象类的特点
    A:抽象类和抽象方法必须使用abstract修饰
    B:抽象类不能被实例化
    C:抽象类有构造方法,用于子类实例化使用
    D:如果一个类是抽象类,那么,继承它的子类
      要么是抽象类。
      要么重写所有抽象方法。
  (3)抽象类的成员特点
    A:成员变量 可以是变量,也可以是常量
    B:构造方法 有构造方法
    C:成员方法 可以有抽象方法,也可以有非抽象方法(全是抽象方法或者非抽象方法都是可以的)
  (4)抽象类的几个小问题
    A:抽象类不能被实例化,为什么有构造?
      用于子类实例化使用。
    B:一个类没有抽象方法,为什么定义为抽象类?
      不想被实例化,或者是抽取出来的一个规则类
    C:abstract不能和哪些关键字共存。
      final
      private
      static

接口
  (1)如果一个抽象类中的方法都是抽象的,这个时候,java就提供了一种更抽象的表示形式:接口。
    接口:interface
    实现:implements

    格式:
      interface 接口名{}

      class 类名 implements 接口名 {}
  (2)接口的特点:
    A:接口不能被实例化。
    B:一个类如果实现了接口:
      要么是抽象类。
      要么实现接口中的所有方法。
  (3)接口的成员特点:
    A:成员变量 只能是常量。默认修饰符 public static final
    B:成员方法 只能是抽象方法。默认修饰符 public abstract
  (4)接口的思想特点:
    A:对外暴露的规则
    B:是功能的扩展
    C:降低耦合度
      耦合:类与类的关系
      内聚:类自己完成某件事情的能力
      高内聚,低耦合。
    D:接口可以多实现。
  (5)类,接口的关系
    A:类与类
      继承关系,只能单继承,可以多层继承。
    B:类与接口
      实现关系,可以单实现,也可以多实现。
      还可以在继承一个类的同时实现多个接口。
    C:接口与接口
      继承关系,可以单继承,也可以多继承。
  (6)抽象类和接口的关系
    接口是对动作的抽象,抽象类是对根源的抽象。
    抽象类中定义的是体系结构中的共性的内容。接口中定义的是对象的扩展功能。
    接口是一种特殊的抽象类,比抽象类更抽象,因为接口中的方法都是抽象方法。

Java基础系列--06_抽象类与接口概述的更多相关文章

  1. 【java基础 16】抽象类和接口的区别

    导读:前两天闲着没事儿,看了本书,然后写了点代码,在接口里面写了默认方法实现,因为书上说这个特性是从java8开始的,我还特地给测了一下java7. 没过几天,就有一个技术分享会,刚好也是讲java8 ...

  2. 十、Java基础---------面向对象之抽象类与接口

    抽象类(abstract)     当编写一个类时,时常会为该类定义一些方法,这些方法的使用用以描述该类的行为方式,那么这些方法都有具体的方法体.但是在某些情况下,某个父类只是知道子类应该包含怎样的方 ...

  3. Java基础知识(抽象类和接口)

    一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: 1 abstract void fun(); 抽象方法必须用abst ...

  4. Java基础5:抽象类和接口

    本文主要介绍了抽象类和接口的特性和使用方法. 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 文章首发于我的个人博客: https://h2pl.g ...

  5. Java基础系列-ArrayList

    原创文章,转载请标注出处:<Java基础系列-ArrayList> 一.概述 ArrayList底层使用的是数组.是List的可变数组实现,这里的可变是针对List而言,而不是底层数组. ...

  6. 夯实Java基础系列6:一文搞懂抽象类和接口,从基础到面试题,揭秘其本质区别!

    目录 抽象类介绍 为什么要用抽象类 一个抽象类小故事 一个抽象类小游戏 接口介绍 接口与类相似点: 接口与类的区别: 接口特性 抽象类和接口的区别 接口的使用: 接口最佳实践:设计模式中的工厂模式 接 ...

  7. Java基础系列-equals方法和hashCode方法

    原创文章,转载请标注出处:<Java基础系列-equals方法和hashCode方法> 概述         equals方法和hashCode方法都是有Object类定义的. publi ...

  8. Java基础系列-Comparable和Comparator

    原创文章,转载请标注出处:<Java基础系列-Comparable和Comparator> 一.概述         Java中的排序是由Comparable和Comparator这两个接 ...

  9. 夯实Java基础系列13:深入理解Java中的泛型

    目录 泛型概述 一个栗子 特性 泛型的使用方式 泛型类 泛型接口 泛型通配符 泛型方法 泛型方法的基本用法 类中的泛型方法 泛型方法与可变参数 静态方法与泛型 泛型方法总结 泛型上下边界 泛型常见面试 ...

随机推荐

  1. MySQL和SQLyog的配置-安装及遇到的问题

    1. 安装MySQL 我先是参考了菜鸟教程上的#Windows 上安装 MySQL #版块的安装教程,不过经历了种种磨难,我最后是按照#此篇博客#安装成功的. 这两篇教程最大的差别是在于下载的版本不同 ...

  2. mybatis入门系列二之输入与输出参数

    mybatis入门系列二之详解输入与输出参数   基础知识   mybatis规定mapp.xml中每一个SQL语句形式上只能有一个@parameterType和一个@resultType 1. 返回 ...

  3. Android开发:Eclipse+OpenCV环境搭建

    一.OpenCV预备: OpenCV是一个跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它由一系列 C 函数和少量 C++ 类构成,同时提供了Pyt ...

  4. Linux下安装vmtools的语句

    sudo apt-get upgrade sudo apt-get install open-vm-tools-desktop -y sudo reboot 出现提示信息不确定就默认就好,一路y或ye ...

  5. Jason Wang:记录自己所想所得(第一次作业)

    这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 我在这个课程的目标是 学会现代软件工程的思想,运用到实际中去 这个作业在哪个具体方面帮助我实现目标 ...

  6. cassandra 堆外内存管理

    为什么需要堆外内存呢 单有一些大内存对象的时候,JVM进行垃圾回收时需要收集所有的这些对象的内存也.增加了GC压力.因此需要使用堆外内存. java 分配堆外内存 org.apache.cassand ...

  7. .NET Core TDD 前传: 编写易于测试的代码 -- 缝

    有时候不是我们不想做单元测试, 而是这代码写的实在是没法测试.... 举个例子, 如果一辆汽车在产出后没完成测试, 那么没人敢去驾驶它. 代码也是一样的, 如果项目未能进行该做的测试, 那么客户就不敢 ...

  8. .NET Core微服务之基于IdentityServer建立授权与验证服务(续)

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 上一篇我们基于IdentityServer4建立了一个AuthorizationServer,并且继承了QuickStartUI,能够成功 ...

  9. Python爬虫入门教程 44-100 Charles的安装与使用-手机APP爬虫部分

    1. 第二款抓包工具Charles安装与使用 Charles和Fiddler一样,也是一款抓包工具,比Fiddler界面更加清晰,支持多平台 1.1 官方网址 https://www.charlesp ...

  10. 阿里云Ubuntu下安装、配置权限和导入本地mongodb

    ---恢复内容开始--- 第一部分:首先先在Ubuntu下安装好mongodb,步骤如下: 首先我们需要借助远程管理工具链接到阿里云上的ubuntu系统,接着进行如下操作 一.导出软件源的公钥 sud ...