抽象类
  (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. ABP项目依赖图,根据自已生在的Demo项目分析而得

    根据自已生在的Demo项目分析而得 在线学习代码库:https://github.com/AtwindYu/ABPStudy

  2. idea上maven使用心得(三)——用pom.xml添加jar包

    下面是如何使用maven,maven在idea里面得结构应该是这样: scr底下是main,java是存放web的.java文件 resource目录一般是存放数据库连接数据的,或者存各种资源文件,音 ...

  3. Windows Server 2016-Powershell之客户端加域

    将本地计算机添加到域或工作组,可通过Add-Computer命令操作,具体信息如下: 语法: Add-Computer [-DomainName] <String> [-ComputerN ...

  4. Mysql8 安装过程及安装过程系列问题记录

    前言: 今天,想装个高版本一点的mysql试试,于是下载了一个mysql8的zip版本. 地址:https://dev.mysql.com/downloads/file/?id=484900 没想到安 ...

  5. iOS 11: CORE ML—浅析

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/OWD5UEiVu5JpYArcd2H9ig 作者:l ...

  6. CSS Modules In Webpack

    1)从形式上看,CSS Modules 是将CSS中的选择器转换为变量,然后在DOM中引用变量来引入样式. 2)从效果上看,CSS Modules 可以将CSS选择器名字转成随机字符串,保证选择器同名 ...

  7. 从一张图开始,谈一谈.NET Core和前后端技术的演进之路

    从一张图开始,谈一谈.NET Core和前后端技术的演进之路 邹溪源,李文强,来自长沙.NET技术社区 一张图 2019年3月10日,在长沙.NET 技术社区组织的技术沙龙<.NET Core和 ...

  8. vueJS报错记录列表以及解决方案

    1.在elem团队新出的框架里,navMenu,控制台报missing required prop "index" 解决方案: 添加index的值 2.Duplicate keys ...

  9. centos通过yum安装mysql

    前言 前天按照Oracle上的文档装了一遍mysql,选了最新8.0的版本,后来出现一些问题,网上搜答案,出来的基本还是5.x版本的解决方案,并不适用8.0版本.然后我就去看了一下公司的正式环境买的阿 ...

  10. 以太坊工作原理之txpool详解

    txpool详解 交易池txpool作为区块链系统的重要组成部分,对系统的安全性和稳定性具有重要作用.功能可归纳为:交易缓存.交易验证和交易过滤. 基本介绍 交易分类和缓存 txpool主要包含两个重 ...