抽象类
  (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. 学习ELk之----02. Elastic Search操作入门

    我们将使用Postman来进行日志写入操作.Postman的下载地址,你可以Google一下. 1. 在上一节中,我们启动完成ELK的Docker后,可以在浏览器中打开:http://192.168. ...

  2. 数据库概论_3标准化的SQL语言_ 数据定义

    Student: Course: SC: 1.数据库的定义.删除 1.1数据库的定义(创建) CREATE DATABASE student; 1.2数据库的删除 DROP DATABASE stud ...

  3. 爬虫须知的HTTP协议

    HTTP请求: 1.HTTP请求主要分为"Get"和"Post"两种方法. 2.当我们在浏览器输入URL http://www.baidu.com 的时候, 浏 ...

  4. Yii框架基础增删查改

    返回一条数据 Country::find()->one(); 返回所有数据 Country::find()->all(); 返回记录的数量 $country =Country::find( ...

  5. python验证码简单识别

    因为需求,所以接触了验证码这一块,原本感觉到会很难,学了之后挺简单的,但后来又发现自己还是too young... PIL(python Image Library) 目前PIL的官方最新版本为1.1 ...

  6. 数据库~dotnetcore连接Mysql插入中文失败

    到目录 在dotnetcore里,连接mysql数据,插入中文时出现无法识别,并提示插入失败的情况,分析后得知它是编码问题,即数据库编码问题,你的中文在数据表里无法被识别! 解决方法(一) 进行mys ...

  7. 强化学习(九)Deep Q-Learning进阶之Nature DQN

    在强化学习(八)价值函数的近似表示与Deep Q-Learning中,我们讲到了Deep Q-Learning(NIPS 2013)的算法和代码,在这个算法基础上,有很多Deep Q-Learning ...

  8. IO 和 NIO 的思考

    输入输出是操作系统不可或缺的一部分,大致分为两类:面向磁盘和面向网络.在 Java 中有3种 I/O 类型:BIO.NIO 和 AIO,分别是同步阻塞.同步非阻塞和异步非阻塞 I/O,这里着重描述 B ...

  9. js 获取上传视频的时长、大小、后缀名

    参考资料:获取时长 var fileName = $("#sectionfileUpload").val(); //C:\fakepath\3.jpeg var exts = fi ...

  10. Java高阶语法---static

    背景:听说static Java高阶语法是挺进BAT必经之路. static: 静态static,很多时候会令我望文生义,但是get到了static最重要的一点,其他的理解都还ok. static最重 ...