java面向对象-抽象类和接口
抽象类(abstract没有足够的信息来描述)
被abstract修饰的类就是抽象类,修饰的方法就是抽象方法。
抽象类中可以没有抽象方法,但有抽象方法的类必须要声明为抽象类。
抽象类不能使用new来创建对象,它是用来让子类继承的。
抽象方法只有方法的声明,没有实现,让其子类实现。
子类继承抽象类,必须实现抽象类的所有方法,否则该子类也要声明为抽象类。
抽象类的特征:
(1)不可被实例化(2)抽象类是有构造器的(所有类都有构造器)
(3)抽象方法所在的类,一定是抽象类(因为抽象方法是没有方法体的,如果所在的类不是抽象类,那么该类可以实例化对象,调用抽象方法,然后无方法体去具体实现功能,则矛盾)
(4)抽象类可以没有抽象方法的抽象方法(abstract method)abstract修饰的方法为抽象方法
抽象方法的特征:
(1)格式,没有方法体,包括{ },例如public abstract void dink();
(2)抽象方法只保留方法的功能,具体的执行,交给继承抽象类的子类,由子类重写改抽象方法
(3)如果子类继承抽象类,并重写了父类的所有的抽象方法,则此子类不是抽象类,可以实例化的
(4)如果子类继承抽象类,没有重写父类中所有的抽象方法,意味着子类中还有抽象方法,那么此子类必须必须声明为抽象的。
接口
普通类:只有具体实现
抽象类:具体实现和规范(抽象方法)都有!
接口:只有规范!自己无法写方法~专业的约束!约束和实现分离:面向接口编程
接口就是规范,接口的本质是契约
声明类的关键字是class,声明接口的关键字是interface
作用
- 接口是一个约束
- 定义一些方法,让不同的人实现
- 方法只能创建抽象,创建 public sbstract
- 属性只能创建常量,常量创建 public static final
- 接口不能被实例化,接口中没有构造方法
- implements 可以实现多个接口
- 必须要重写接口中的方法
总结:抽象类针对类,接口针对方法。抽象类不能被实例化,抽象类中可以没有抽象方法,一个类如果继承一个抽象类就必须实现抽象类的抽象方法,如果不实现该抽象类的抽象方法,那么这个类也是抽象类。
接口是标准,是规范。接口中存在常量和未实现的方法。
java面向对象-抽象类和接口相关推荐
- Java基础学习第十二讲:Java面向对象---抽象类和接口
Java面向对象-抽象类和接口 一.抽象类 抽象的定义: 我们在日常生活中,经常通过总结一些事物的共性来对事物进行分类,这种共性可能是一些相同的属性,也可能是一些相同的动作.通过总结,我们能够清晰的划 ...
- Java 面向对象 抽象类与接口
在类的继承中,如果一个个新的子类被定义,子类变得越来越具体,父类变得更加一般和通用,类的设计应该保证父子类能够共享特征,有时将父类设计得非常抽象,使得父类没有具体的实现,这样的类叫做抽象类:一般当我们 ...
- java面向对象抽象类和接口
抽象方法和抽象类 (1)一个抽象类中可以不定义抽象方法,但是只要类中有一个抽象方法,则该类一定是抽象类 (2)抽象类不能被实例化,即不能被new创建一个实例对象. (3)如果一个子类继承一个抽象类,则 ...
- Java面向对象—抽象类和接口
目录 抽象类 什么是抽象类? 1.抽象方法 2.抽象类 实现抽象类中的方法 抽象类使用的意义 接口 什么是接口? 接口的意义 抽象类 什么是抽象类? 1.抽象方法 当一个类没有具体的方法体时,且被ab ...
- Java中抽象类和接口在概念、语法和应用上的区别和关系
2019独角兽企业重金招聘Python工程师标准>>> 春招开始了,盆友们都忙着准备笔试.准备面试,复习学过的知识点,当然我也不例外,在这里祝每一个"有心人"心想 ...
- Java面向对象-抽象类
Java面向对象-抽象类 定义:在java中,含有抽象方法的类称为抽象类,同样不能生成对象: 注意点: 1,包含一个抽象方法的类是抽象类: 2,抽象类和抽象方法都要用abstract关键字修饰: 3, ...
- 关于Java中抽象类和接口的一点思索
Java中抽象类和接口的一点思索 成员方法上的区别: 1. java中的抽象类可以提供成员方法的实现细节,抽象方法只能是被public和protected来修饰 配合abstract关键字,子类需要实 ...
- java中抽象类和接口的作用与区别
抽象类与接口的区别 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力. abstract ...
- 详细解析Java中抽象类和接口的区别
在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和int ...
最新文章
- numpy——hsplit()、vsplit()函数的详细使用
- 马哥linux2020博客,马哥linux学习(bash shell学习)
- mysql order by 日期_mysql order by基于时间的盲注
- git for windows_干货分享 | 嵌入式必备技能之Git的使用
- windows安装XGBoost
- 提高编写CSS代码效率的10个习惯
- 计算机桌面通过网络在拼接屏上显示,一种多个拼接屏实时同步显示方法与流程...
- 阿里巴巴Mysql规范
- 行内元素和块级元素:内联(行级)元素不能设置margin-top
- h5(移动端) 监听软键盘弹起、收起
- cadence ic5141安装包_Cadence IC5141 安装文档
- winform直接控制云台_299元,246g,260mm,一天销量破万的智云最新手机云台深度评测...
- 推荐收藏,25条实用简洁的 Python 代码真香啊
- ESP32与掌控板IO接口编程入门 | ESP32轻松学(Arduino版)
- java模拟器分辨率_创建AVD 模拟器大小/分辨率 调整
- DOS命令行下输入mount命令
- 【C++】屋顶积水问题
- 七步SQLserver导入XLS数据源(0代码)
- Memtest86 —— Modulo20 算法
- 甲骨文(oracle) 美国,甲骨文全球大会.美国