JavaSE基础-02-接口
一.抽象类:
抽象类和一般类没有太大的区别,都是在描述事物,只不过抽象类在描述事物时,有些功能不具体,所以没有实现,需要子类进行实现。
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-接口相关推荐
- JavaSE基础02
类型转换 低----------------------------------------------------------->高 byte,short,char->int->l ...
- java学习之路之javaSE基础1
<h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解) * A:什么是计算机?计算机在生活中的应 ...
- Java面试题全集(上)+JavaSE基础
三重:代码.底层内存.源码 第一阶段:开发常用 JavaSE基础.IDE.Maven.Gradle.SVN.Git.Spring.Spring MVC.Spring Boot.Spring Cloud ...
- Java基础-02(基础语法)
Java基础-02(基础语法) 一 注释 加粗样式 注释用来解释和说明程序的文字,注释是不会被执行的. 1.1单行注释 //这是一条单行注释 public int i; 1.2多行注释 /* 这是 * ...
- Java/Android基础-02
Java基础-02 概念 面向对象编程 将某一类事物抽象化,确定如何操作数据然后再考虑如何操作数据.然后再考虑下如何组织数据 特点 属性: 用来描述对象的数据元素称为对象的属性. 方法: 对象的属性进 ...
- JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入)
JAVASE基础模块三十四( 菜鸡版简单登录验证模块系统IO流文件写入) 开发流程:需求文档 接口文档 效果图 开发环境统一:JDK1.8 IDEA win10 GIT SSM SSH SpringB ...
- javaSE基础重点知识点总结 持续更新
javaSE基础重点知识点解析 文章目录 javaSE基础重点知识点解析 前言 1.重载和重写 2.匿名对象 3.可变个数形参的方法 4.MVC设计模式 5.java.lang.Object类 6.自 ...
- JavaSE基础阶段学习笔记
MarkDown学习 标题 三级标题 四级标题 字体 hello,word! hello,word! hello,word! hello,word! 引用 选择狂神说Java,走向人生巅峰 分割线 图 ...
- JavaSE基础——常用类1
JavaSE基础--常用类1 一.Object类 java.lang.Object类是Java语言中的根类,即所有类的父类.它当中描述的所有方法子类都可以使用. 如果在类的声明中没有显式地使用exte ...
- JavaSE基础加强-学习黑马程序员Java基础视频教程(P93开始)
目录 P0:写在前面的小知识 P93:下阶段:JavaSE基础加强简介 P95:static:修饰成员变量.内存机制 P96:static:修饰成员方法.内存机制 P97:static:访问的注意事项 ...
最新文章
- 总结 | 深度学习损失函数大全
- Kali Linux信息收集工具全
- Scrum立会报告+燃尽图(十月二十一日总第十二次)
- linux c 头文件,linux下的头文件 及C/C++头文件 一览表
- firefox兼容性问题
- 心得体悟帖---开解语录
- 解决mysql表不能查询修改删除等操作并出现卡死
- 解决 Windows Update 更新错误/无法创建还原点 代码 0x80246008
- mysql离散查询_如何写出高性能的MySQL查询
- 大佬 | 从啥也不会,到Java大佬,他就因为会了这一门绝技
- JQuery实现radio、select、checkbox禁用
- nginx模块使用详解
- 4月升级鸿蒙,华为鸿蒙系统4月升级适配名单一览
- Atitit 颜色平均值cloor grb hsv模式的区别对比
- 天下谁人不识“金” — SONY NW-WM1ZM2 索尼金砖二代测评
- HyperLynx(六)参数扫描仿真
- 程序人生:面试字节跳动Java工程师该怎么准备?挑战大厂重燃激情!
- 排序函数sort()
- Unity3D UGUI 渐变效果
- 如何系统地学习计算机编程?自学还是培训?怎么选?
热门文章
- 实施和开发哪个前景好_现在学习苹果ios开发还有发展前景吗?学android和ios哪个更好?...
- jmeter使用_jmeter概念及使用
- Java常见概念(POJO\javabean\DTO\PO\BO\VO)浅析
- HighCharts:设置饼图图例文字颜色
- JetBrains:修改C盘中的JetBrains家族软件如PyCharm、WebStorm等的缓存文件位置
- Spring Boot+Vue从零开始搭建博客系统veblog(一):项目前端_vuejs环境搭建
- 设计模式(7)——适配器模式
- HTTP请求和MIME介绍
- LMM(LightMoonMovie)亮月湾电影分享管理系统;
- Canny算法解析,opencv源码实现及实例