JAVA基础知识总结:十
一、抽象类
1、定义
当多个类中出现相同功能,但是功能主体是不同的,这是可以进行向上抽取的,只抽取功能的定义部分,使用抽象类实现
抽象类的存在就是为了被继承
2.使用
abstract
3.抽象类的特点
a.使用关键字abstract修饰的类
b.抽象类不可以使用new关键字进行创建对象
c.抽象类中既可以写抽象方法,也可以写普通方法
d.如果子类只实现了抽象类中的部分抽象方法,那么这个时候子类仍然是一个抽象类
4.抽象方法的特点:
a.抽象方法必须存在于抽象类中
b.使用abstract修饰的方法
c.只有声明,没有实现
5.抽象类和一般类的区别
a.抽象类是在一般类的基础上,使用abstract修饰的类
b.抽象类中既可以有抽象方法,也可以有普通方法,普通类中只能有普通方法
c.抽象类不能用于实例化对象
二、接口
1.概念
初期理解:可以认为接口是一种特殊的抽象类,当抽象类中的方法全部是抽象方法的时候,我们就可以使用接口来表示
接口是抽象方法的集合,
2.使用
interface
语法:访问权限修饰符 interface 接口名称
{
}
3.接口的特点
a.接口不能实例化对象
b.接口中不能写成员变量
接口中成员变量的修饰符是固定的,public static final,在接口中出现的变量统统认为是常量
c.接口中默认所有的方法都是抽象方法
接口中方法的修饰符也是固定的,public abstract,接口中默认所有的方法都是抽象方法
4.接口的实现和类之间的关系
一个类如果要实现另外一个类中的方法的话,使用继承实现
一个类如果要实现一个接口中的方法的话,则需要实现这个接口
语法:
访问权限修饰符 class 子类类名 implements 接口名 {
}
其中,把实现了这个接口的类称为接口的实现类
注意:
a.子类必须实现接口中的全部的抽象方法,子类才可以实例化,否则,子类仍然是一个抽象类
b.一个类是可以实现多个接口,需要把实现的接口中的方法全部实现了
c.实现接口和类的继承之间没有关系,一个类在实现接口的同时也可以继承
d.接口之间是可以进行继承的,并且是多继承
总结
接口其实是对外暴露的规则
接口可以实现程序功能的扩展
接口可以用来多实现
接口之间是可以继承的,并且是多继承的关系
一个类在继承的同时可以实现接口
三、多态
一种事物的多种体现形式
Java中的体现形式:
1>父类的引用指向子类的对象
2>接口的引用指向实现类的对象
四、对象转型
1.对象的向上转型
由子类类型转换为父类类型
由实现类类型转换为接口类型
对象向上转型之后就不能再访问子类中特有的方法和属性
对象向上转型之后就不能再访问实现类中特有的方法,
2.对象的向下转型
由父类类型转换为子类类型:强制类型转换
3.instanceof
语法:对象 instanceof 对象匹配的类型
作用:判断这个对象是不是指定的类型
五。工厂设计模式
多态的应用
当需要一个对象的时候,并不是直接通过new的方式实例化对象,而是通过工厂类的工厂方法直接去获取
JAVA基础知识总结:十的更多相关文章
- Java基础知识陷阱(十)
本文发表于本人博客. 上个星期由于时间比较紧所以未能继续写下去,今天再接再厉,专心 + 坚持这样离目标就越来越近了!废话少说说正题,今天我们还是来说说java中比较基础的知识,大家知道编写java程序 ...
- Java基础知识陷阱系列
Java基础知识陷阱系列 今天抽空把Java基础知识陷阱有关的文章汇总于此,便于大家查看. Java基础知识陷阱(一) Java基础知识陷阱(二) Java基础知识陷阱(三) Java基础知识陷阱(四 ...
- 第二十九节:Java基础知识-类,多态,Object,数组和字符串
前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...
- java基础知识文章汇总
将之前的所有关于Java基础知识的随笔,整理成质量较高的十几篇随笔,几乎是好几篇比较零散的随笔合成现在的一篇,自认为还不错. java基础(一) 深入解析基本类型 java基础(二) 自增自减与贪心规 ...
- 「Java面试题/知识点精华集」20000+字的Java基础知识篇(2020最新版) !
本文已经收录进我的 79K Star 的 Java 开源项目 JavaGuide:https://github.com/Snailclimb/JavaGuide (「Java学习+面试指南」一份涵盖大 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
- Java基础知识系列——String
最近晚上没有什么事(主要是不加班有单身),就复习了一下Java的基础知识.我复习Java基础知识主要是依据Java API和The Java™ Tutorials. 今天是第一篇,复习了一下Strin ...
- 学习android学习必备的java基础知识--四大内部类
学习android必备的java基础知识--四大内部类 今天学习android课程,因为我的主专业是JAVA,但是兴趣班却有这其他专业的同学,学习android 需要具备一些java的基础知识,因此就 ...
- JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)
本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...
随机推荐
- SQL数据库基础知识-巩固篇<一>
SQL数据库基础知识-巩固篇<一>... =============== 首先展示两款我个人很喜欢的数据库-专用于平时个人SQL技术的练习<特点:体积小,好安装和好卸载,功能完全够用 ...
- Jar文件 META-INF/MANIFEST.MF文件详解
打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录, 这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文件描述了该Jar文件的很多信息,下面将详细介绍MANI ...
- linux(4) vi编辑/删除、复制、粘贴 /bash shell 环境变量设置/数据流重定向 | 的用法
一.vi文字处理器1.vi与vimvi:文字处理器vim:程序开发工具2.vi介绍三种模式:一般模式(vi刚进入的,不可编辑),编辑模式(按i后,左下方是insert)和命令行模式(按esc退出,:w ...
- 浅谈IT技术女转战微电商初体验
今天闲来无事,突然想翻看下之前写的技术博客,很是意外,居然那么多阅读量,于是想想做微商也有一段时间了,决定写写初入微商的初体验. 先自我介绍一下,本人是一名理工女,做IT行业的,这个行业也许有人了解, ...
- RobotFramework自动化测试框架-移动手机自动化测试Clear Text关键字的使用
Clear Text关键字用来清除输入框的数据,该关键字接收一个参数[ locator ],这里的locator指的就是界面元素的定位方式. 示例1:Clear Text清除输入框数据时,采用reso ...
- JSR303的数据校验-Hibernate Validator方式实现
1.什么是JSR303? JSR303是java为bean数据合法性校验所提供的一个标准规范,叫做Bean Validation. Bean Validation是一个运行时的数据校验框架,在验证之后 ...
- 在eclipse上使用github,向github中提交项目
1.下载egit插件 打开Eclipse,git需要eclipse授权,通过网页是无法下载egit的安装包的.在菜单栏依次打开eclipse→help→install new software→add ...
- SQL Server 2016 Alwayson新增功能
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/ 概述 SQLServer2016发布版本到现在已有一年多的时间了,目前最新的稳定版本是SP1版本.接下来就开看看2016在Alw ...
- 如何解决Python.h:No such file or directory
安装python2.7对应的dev sudo apt-get install python-dev 安装python3.6对应的dev sudo apt-get install python3-dev
- 调试 ASP.NET Core 2.0 源代码
在Visual Studio 2017中可以通过符号以及源链接,非常方便对 ASP.NET Core 2.0中源代码进行调试.在这篇文章中,我们将重点介绍如何使用源链接对ASP.NET Core源进行 ...