一.抽象类:

抽象类和一般类没有太大的区别,都是在描述事物,只不过抽象类在描述事物时,有些功能不具体,所以没有实现,需要子类进行实现。

1.1 abstract关键字

abstract修饰符用来修饰方法和类,用来定义抽象方法和抽象类,不能用来修饰变量

1.2 抽象类的特点

1)抽象方法只能定义在抽象类中
2)抽象方法只有方法声明,没有方法实现(即方法体中没有代码)
3)抽象类不可以用来创建对象(实例化)
4)只有通过子类继承抽象类并覆盖了抽象类中的所有抽象方法后,该子类才可以实例化,否则,该子类还是一个抽象类
5)抽象类中有构造函数,用于给子类对象进行初始化
6)抽象类中可以定义非抽象方法
7)抽象关键字abstract和final , private , static 三个关键字不能共存
8)抽象类中可以没有抽象方法,抽象方法目的仅仅为了不让该类创建对象

二.接口

2.1 接口的概念

用关键字interface定义,一般用于给实现自己的对象定义扩展功能。接口中最常见的成员有全局常量、抽象方法。接口中的成员都有固定的修饰符。成员变量:public static final,成员方法:public abstract。

interface Inter{public static final int x = 3;public abstract void show();
}

2.2 接口的实例化

接口中有抽象方法,说明接口不可以实例化。接口的子类必须实现了接口中所有的抽象方法后,该子类才可以实例化。否则,该子类还是一个抽象类。

2.3 接口与类之间的实现关系

类与类之间存在着继承关系,类与接口中间存在的是实现关系。继承用extends关键字,实现用implements关键字,实现了接口的类必须重写接口中的所有方法

2.4 接口的多实现

接口可以被多实现,Java通过多实现来弥补不支持多继承的缺陷。一个类在继承一个父类的同时,还可以实现多个接口,通过实现多个接口来实现更多功能的扩展,避免了单继承的局限性

三.面向对象特点——多态

一个接口可以有多个不同的实现类,每个实现类都重写了接口中的方法,多态即一个事物有多种不同的实现。多态在程序中的使用提高了程序的扩展性。
一个简单的体现多态的例子:父类引用或者接口的引用指向了自己的子类对对象

//动物有很多种,猫是其中一种
Animal a = new Cat();

多态的出现对编程思想的改变:有多态之前是创建对象并操作单个对象。有了多态以后,可以通过操作抽取类型(即顶级父类或顶级接口),操作一批对象。

JavaSE基础-02-接口相关推荐

  1. JavaSE基础02

    类型转换 低----------------------------------------------------------->高 byte,short,char->int->l ...

  2. java学习之路之javaSE基础1

    <h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解) * A:什么是计算机?计算机在生活中的应 ...

  3. Java面试题全集(上)+JavaSE基础

    三重:代码.底层内存.源码 第一阶段:开发常用 JavaSE基础.IDE.Maven.Gradle.SVN.Git.Spring.Spring MVC.Spring Boot.Spring Cloud ...

  4. Java基础-02(基础语法)

    Java基础-02(基础语法) 一 注释 加粗样式 注释用来解释和说明程序的文字,注释是不会被执行的. 1.1单行注释 //这是一条单行注释 public int i; 1.2多行注释 /* 这是 * ...

  5. Java/Android基础-02

    Java基础-02 概念 面向对象编程 将某一类事物抽象化,确定如何操作数据然后再考虑如何操作数据.然后再考虑下如何组织数据 特点 属性: 用来描述对象的数据元素称为对象的属性. 方法: 对象的属性进 ...

  6. JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入)

    JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入) 开发流程:需求文档 接口文档 效果图 开发环境统一:JDK1.8 IDEA win10 GIT SSM SSH SpringB ...

  7. javaSE基础重点知识点总结 持续更新

    javaSE基础重点知识点解析 文章目录 javaSE基础重点知识点解析 前言 1.重载和重写 2.匿名对象 3.可变个数形参的方法 4.MVC设计模式 5.java.lang.Object类 6.自 ...

  8. JavaSE基础阶段学习笔记

    MarkDown学习 标题 三级标题 四级标题 字体 hello,word! hello,word! hello,word! hello,word! 引用 选择狂神说Java,走向人生巅峰 分割线 图 ...

  9. JavaSE基础——常用类1

    JavaSE基础--常用类1 一.Object类 java.lang.Object类是Java语言中的根类,即所有类的父类.它当中描述的所有方法子类都可以使用. 如果在类的声明中没有显式地使用exte ...

  10. JavaSE基础加强-学习黑马程序员Java基础视频教程(P93开始)

    目录 P0:写在前面的小知识 P93:下阶段:JavaSE基础加强简介 P95:static:修饰成员变量.内存机制 P96:static:修饰成员方法.内存机制 P97:static:访问的注意事项 ...

最新文章

  1. 总结 | 深度学习损失函数大全
  2. Kali Linux信息收集工具全
  3. Scrum立会报告+燃尽图(十月二十一日总第十二次)
  4. linux c 头文件,linux下的头文件 及C/C++头文件 一览表
  5. firefox兼容性问题
  6. 心得体悟帖---开解语录
  7. 解决mysql表不能查询修改删除等操作并出现卡死
  8. 解决 Windows Update 更新错误/无法创建还原点 代码 0x80246008
  9. mysql离散查询_如何写出高性能的MySQL查询
  10. 大佬 | 从啥也不会,到Java大佬,他就因为会了这一门绝技
  11. JQuery实现radio、select、checkbox禁用
  12. nginx模块使用详解
  13. 4月升级鸿蒙,华为鸿蒙系统4月升级适配名单一览
  14. Atitit 颜色平均值cloor grb hsv模式的区别对比
  15. 天下谁人不识“金” — SONY NW-WM1ZM2 索尼金砖二代测评
  16. HyperLynx(六)参数扫描仿真
  17. 程序人生:面试字节跳动Java工程师该怎么准备?挑战大厂重燃激情!
  18. 排序函数sort()
  19. Unity3D UGUI 渐变效果
  20. 如何系统地学习计算机编程?自学还是培训?怎么选?

热门文章

  1. 实施和开发哪个前景好_现在学习苹果ios开发还有发展前景吗?学android和ios哪个更好?...
  2. jmeter使用_jmeter概念及使用
  3. Java常见概念(POJO\javabean\DTO\PO\BO\VO)浅析
  4. HighCharts:设置饼图图例文字颜色
  5. JetBrains:修改C盘中的JetBrains家族软件如PyCharm、WebStorm等的缓存文件位置
  6. Spring Boot+Vue从零开始搭建博客系统veblog(一):项目前端_vuejs环境搭建
  7. 设计模式(7)——适配器模式
  8. HTTP请求和MIME介绍
  9. LMM(LightMoonMovie)亮月湾电影分享管理系统;
  10. Canny算法解析,opencv源码实现及实例