Java 学习(12)--接口
一、接口
(1)猫钻火圈,狗跳高等功能,不是动物本身就具备的,是在后面的培养中训练出来的,
这种额外的功能, java 提供了接口表示。
(2)接口的特点:
A:接口用关键字 interface 修饰 interface 接口名 {}
B:类实现接口用 implements 修饰 class 类名 implements 接口名 {}
C:接口不能实例化 ,类可以有多个接口
D:接口的实现类 a:是一个抽象类。 b: 是一个具体类,这个类必须重写接口中的所有抽象方法。
(3)接口的成员特点:
A:成员变量 只能是常量,不能是变量 默认修饰符: public static final(默认添加)
B:构造方法 没有构造方法,接口主要是拓展功能的,没有具体存在
C:成员方法 只能是抽象方法 默认修饰符: public abstract
示例
输出:我是一个抽烟的人
示例2(接口与多态相配合,实现程序设计和程序运行相分离)
输出:开着飞机去邮信
(4)类与类 ,类与接口 ,接口与接口间的关系
A:类与类
继承关系,只能单继承,可以多层继承
B:类与接口
实现关系,可以单实现,也可以多实现。 还可以在继承一个类的同时,实现多个接口
C:接口与接口
继承关系,可以单继承,也可以多继承(不常用)
(5)抽象类和接口的区别
A:成员区别
抽象类:成员变量:可以变量,也可以常量
构造方法:有
成员方法:可以抽象,也可以非抽象
接口;成员变量:只可以常量
成员方法:只可以抽象
B:关系区别 :
类与类
继承,单继承
类与接口
实现,单实现,多实现
接口与接口
继承,单继承,多继承
C:设计理念不同
抽象类: is a,抽象类中定义的是共性功能,概念上是相同的(猫、狗和动物)。
接口: like a,接口中定义的是扩展功能,概念上可以没关系(飞 、鸟、飞机)。
案例
项目分析是从具体到抽象的过程;项目实现是从抽象到具体的过程
写接口
调用实现
输出:
调用实现2
调用实现3
输出:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
C扩展Python
使用C扩展Python PyErr_*()函数是将一个异常对象压入到Python解释器的异常栈中 PyErr_Clear()函数是将Python异常栈中栈顶的元素弹出, 调用这个函数通常就相当于在Python程序中的try: except: 语句中except的作用 Python中的API, 每一个模块对应的API是PyMODNAME_FUNCINMOD() Python扩展模块的函数模板: // First static PyObject *exfunc(PyObject *self, PyObject *args) { ... // Get parameters /* Return 0 means an exception has been raised, you need to stop your program and rreturn NULL According to the official: It returns NULL (the error indicator for functions returning object pointers) if an error i...
- 下一篇
Java关键字(五)——this
this 也是Java中的一个关键字,在《Java编程思想》第四版第五章5.4小节对 this 关键字是这样介绍的: this 关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。 其实简单来说 this 关键字就是表示当前对象,下面我们来具体介绍 this 关键字在Java中的用法。 1、调用成员变量 在一个类的方法内部,如果我们想调用其成员变量,不用 this,我们会怎么做? 1 package com.ys.test; 2 3 /** 4 * Create by YSOcean 5 */ 6 public class ThisTest { 7 8 private String name = "Tom"; 9 10 public void setName(String name){ 11 name = name; 12 } 13 14 public String getName() { 15 return name; 16 } 17 18 } 看上面的代码,我们在 ThisTest 类中创建了一个 name 属性,然后创建了一个 setName 方法,注意这个方法的形参也...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Mario游戏-低调大师作品
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Hadoop3单机部署,实现最简伪集群
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题