java1002java,疯狂java学习笔记1002---抽象类及接口
抽象类:
1、抽象方法是只有方法签名,没有方法实现的方法。
2、抽象方法和抽象类必须使用abstract修饰符来定义,有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法。
3、*抽象方法不能有方法体*
4、抽象类不能被实例化,即使抽象类里不包含抽象方法,也不能创建实例。
5、抽象类的构造器不能用于创建实例,主要是用于被其子类调用。
接口:
1、接口里不能包含普通方法,接口里所有方法都是抽象方法。
2、一个接口可以有多个直接父接口,但接口只能继承接口,不能继承类。
3、由于接口定义的是一种规范,接口里不能包含构造器和初始化块定义。
4、接口里的属性只能是常量,接口里的方法只能是抽象方法。
5、接口里所有成员,包括常量、方法、内部类和枚举类都是public访问权限。
定义接口成员时,可以省略访问控制修饰符,如果指定访问控制修饰符,只能使用public访问控制修饰符。
对于接口里定义的常量属性,系统自动为这些属性增加static和final两个修饰符.
int MAX_SIZE = 50;
public static final int MAX_SIZE = 50;//这两行代码结构一样
接口中的方法总是使用public abstract来修饰的。
实现接口方法时,必须使用public访问控制修饰符,因为接口里的方法都是public的,而子类重写父类方法时
访问权限只能更大或者相等。
接口和抽象类相同点:
1、都不能实例化
2、接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的普通子类都必须实现这些抽象方法。
接口和抽象类不同点:
1、接口里只能包含抽象方法,抽象类则可以包含普通方法。
2、接口里不能定义静态方法,抽象类里可以定义静态方法。
3、接口里只能定义静态常量属性,不能定义普通属性,抽象类里都可以
4、接口里不包含构造器,抽象类里可以。
5、接口里不能包含初始化块,抽象类可以
6、接口多实现,抽象类单继承。
java1002java,疯狂java学习笔记1002---抽象类及接口相关推荐
- JAVA学习笔记之抽象类与接口2020-3-22
抽象类 先了解一下抽象类的概念. 一个完整的方法,是有: 1.方法声明 2.方法体 public void show(){方法体; } 而如果只包含方法声明,没有方法体,那么就称之为:抽象方法.(ab ...
- 【Java 学习笔记】 抽象类和接口
抽象类:类的设计应当保证父类包含子类的共同特征,有时为了方便会将父类设计的特别抽象以至于没有具体实例,称之为抽象类. -多重继承:需要从多个类中派生出一个子类,这种能力叫做多重继承. -单重继承:每个 ...
- 疯狂Java学习笔记(69)---------Lock
疯狂Java学习笔记(69)---------Lock Java并发编程:Lock 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问.本文我们继续来探讨这个问题,从Java ...
- Java学习笔记(四)——接口
Java学习笔记(四)--接口 1.格式 2.接口的特点 3.接口举例 1.格式 接口:初期理解,可以认为是一个特殊的抽象类.当抽象类中的方法都是抽象的,那么该类 可以通过接口的方式来表示. clas ...
- 疯狂java学习笔记
<疯狂java>我觉得是一本很好的java基础书,里面解释的比较通俗易懂,不繁琐,深入程度刚刚好,比较适合我现阶段来学习,巩固java基础知识,所以将所做的笔记整理如下: 1.数据类型分类 ...
- Java学习系列之抽象类和接口的区别和联系
导读 本文首先分别介绍抽象类和接口的基础概念.特征和应用场景,然后介绍其区别和联系. 1 抽象类 1.1 定义抽象类 在Java中被abstract关键字修饰的类称为抽象类,被abstract关键字修 ...
- 疯狂java学习笔记之面向对象(二) - 成员变量与局部变量
Java变量按其作用域可分为:成员变量和局部变量.注意:在Java中是没有全局变量这个概念的 一.成员变量: 成员变量是在类中定义的变量,具体可分为类变量与实例变量--有无static修饰 实例变量的 ...
- 疯狂java学习笔记之面向对象(三) - 方法所属性和值传递
方法的所属性: 从语法的角度来看:方法必须定义在类中 方法要么属于类本身(static修饰),要么属于实例 -- 到底是属于类还是属于对象? 有无static修饰 调用方法时:必须有主调对象(主语,调 ...
- 疯狂Java学习笔记(72)-----------大话程序猿面试
大话程序猿面试 10个我最喜欢问程序猿的面试问题 程序猿面试不全然指南 10个经典的C语言面试基础算法及代码 程序猿的10大成功面试技巧 程序猿选择公司的8个标准 编程开发 8个值得关注的PHP安全函 ...
最新文章
- Java进一步增强AI支持:Java-AI库概述
- 如何修改 Linkis 依赖的 Spark、Hive 版本?
- C++ opengl 深度缓冲区
- syslog(),openlog(),closelog()
- 解决sublime text 3使用Install Package时出现There are no packages available for installation问题
- java object 数组_Java用Object实现数组队列的泛思与理解
- Linux内存管理 -- /proc/{pid}/smaps讲解
- Kernel中bluetooth相关的config选项
- Java去掉字符串首尾的““
- 怎么录制视频声音,什么录音软件好用
- win10下CUDA版本卸载与更新
- vSphere中使用模板新建虚拟机
- Asp.Net 汉字转(拼音)
- C#图形教程画笔画刷等
- Lind.DDD.SSO单点登陆组件的使用(原创)
- python画泡泡图片例子
- linux 分区 物理卷 逻辑卷
- 【测绘程序设计】——坐标正算和反算
- Android富文本编辑器(二)
- python中pandas处理csv_python – 处理pandas的问题读取csv
热门文章
- Unix高级环境编程 学习小结(一)
- 【转】HashMap集合中key只能为引用数据类型,不能为基本类型
- spring boot / cloud (十七) 快速搭建注册中心和配置中心
- html实现3d视觉特效
- css 让div 的高度和屏幕的高度一样
- [Linux]centOS7-1-1503-x86_64下安装VM-TOOLS
- Android中实现Launcher功能之四---滑屏初探 scrollTo 以及 scrollBy方法使用说明
- Winsock编程宝典(转帖)
- 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第8节 Math类_18_数学工具类Math...
- asp.net core MVC 过滤器之ExceptionFilter过滤器(一)