Java中接口相关知识
1.接口
1.1接口概述
接口就是一种公共的规范标准,只要符合标准,大家都可以通用
Java中的接口更多的体现在对行为的抽象
1.2接口的特点
- 接口用关键字interface修饰,格式:public interface 接口名{}
- 类实现接口用implements表示,格式:public class 类名 implements 接口名{}
- 接口不能实例化,接口实例化可以参照多态的方式,通过实现类对象来进行实例化,这也叫做接口多态。
- 接口的实现类要么重写接口中的所有抽象方法,要么是抽象类
多态的形式:
- 具体类多态
- 抽象类多态
- 接口多态
多态的前提:有继承关系或者实现关系;有方法重写;有父类引用指向子类对象或者父接口引用指向子实现类对象。
接口:
package com.itheima_02;
//定义了一个接口
//接口用关键字interface修饰,格式:public interface 接口名{}
public interface Jumpping {
public abstract void jump();
}
实现类1:
package com.itheima_02;
//类实现接口用implements表示,格式:public class 类名 implements 接口名{}
public class Cat implements Jumpping {
@Override
public void jump() {
System.out.println("猫跳高");
}
}
实现类2:
package com.itheima_02;
public abstract class Dog implements Jumpping {
//接口的实现类要么重写接口中的所有抽象方法,要么是抽象类
}
测试类:
package com.itheima_02;
public class JumppingDemo {
public static void main(String[] args) {
//接口不能实例化,接口实例化可以参照多态的方式,通过实现类对象来进行实例化,这也叫做接口多态。
// Jumpping j = new Jumpping(); 错误
Jumpping j = new Cat(); //采用多态的形式
j.jump();
}
}
1.3接口的成员特点
- 成员变量:(只能是常量,默认用修饰符public static final进行修饰)
- 构造方法:(接口中没有构造方法,因为接口主要是对行为的抽象,是没有具有存在的,一个类如果没有父类,默认继承自Object类)
- 成员方法:只能是成员方法,默认用public abstract修饰
接口:
package com.itheima_03;
//接口
public interface Inter {
/*
/成员变量:(只能是常量,默认用修饰符public static final进行修饰)
所以int num = 10;和public final int num = 10;是一样的
*/
public int num1 = 10;
public final int num2 = 20;
//public Inter(){} 报错:接口中没有构造方法,因为接口主要是对行为的抽象,是没有具有存在的
//public void show(){} 报错:因为接口中的成员方法只能是抽象方法,默认用public abstract修饰
}
实现类:
package com.itheima_03;
public class InterImpl implements Inter {
/*
接口中没有构造方法,因为接口主要是对行为的抽象,是没有具有存在的,一个类如果没有父类,默认继承自Object类
Object类是所有类的根,所有的类都直接或者间接的继承自Object类
public class InterImpl implements Inter其实是public class InterImpl extends Object implements Inter的省略写法
/
*/
}
1.4类和接口的关系
- 类和类的关系:继承关系,只能单继承,但是可以多层继承
- 类和接口的关系:实现关系,可以单实现也可以多实现,还可以在继承一个类的同时实现多个接口
- 接口和接口的关系:继承关系,可以单继承也可以多继承
1.5抽象类和接口的区别
1.成员区别
抽象类 变量,常量;有构造方法;有抽象方法也有非抽象方法
接口 常量;抽象方法
2.关系区别
类与类 继承,单继承
类与接口 实现,单实现和多实现
接口与接口 继承,单继承和多继承
3.设计理念区别
抽象类 是对事物进行抽象,包括属性和行为
接口 对行为抽象,主要是行为
Java中接口相关知识的更多相关文章
- JAVA中HashMap相关知识的总结(一)
Java中HashMap在jdk1.7和jdk1.8中的区别点: 在jdk1.7中是用数组+链表形式存储,1.8采用数组+链表/红黑树形式 Jdk1.8中由链表转为红黑树是长度大于8,由红黑树转为链表 ...
- java之接口相关知识
1.接口用interface来声明 //定义一个动物接口 public interface Animal{ public void eat(); public void travel(); } 2.接 ...
- 第76节:Java中的基础知识
第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...
- Java中接口和抽象类的比較
Java中接口和抽象类的比較-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计 ...
- 浅谈Java中接口与抽象类的异同
浅谈Java中接口与抽象类的异同 抽象类和接口这两个概念困扰了我许久,在我看来,接口与抽象类真的十分相似.期间也曾找过许许多多的资料,参考了各路大神的见解,也只能是简简单单地在语法上懂得两者的区别.硬 ...
- 【Socket编程】Java中网络相关API的应用
Java中网络相关API的应用 一.InetAddress类 InetAddress类用于标识网络上的硬件资源,表示互联网协议(IP)地址. InetAddress类没有构造方法,所以不能直接new出 ...
- 转载 - java中接口的向上转型。和多态性
发现一篇对接口总结很精简的文章 1.在java中接口就是一个完全抽象的类,跟抽象类一样不能产生对象,但是可以作为对象的引用,可以由其实现类向上转型,它就跟超类一样, 向上转型了,可以很好的利用接口,可 ...
- JAVA中接口与抛出异常的相关知识
1.接口概念:接口可以理解为一种特殊的类,由全局常量和公共的抽象方法所组成. 类是一种具体实现体,而接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部数据,也不关心这些类里方法的实现细节,它只 ...
- Python中元组相关知识
下面给大家介绍以下元组的相关知识: ·元组可以看成是一个不可更改的list 1.元组的创建 # 创建空元祖 t = () print(type(t)) # 创建只有一个值的元组 # 观察可知元组中如果 ...
- 关于java中接口定义常量和类定义常量的区别
/** * * @author YZJ * @Description java中定义常量的最佳方法 */ public final class Contants{ /** * @Description ...
随机推荐
- dev随笔记录
gridcontrolbandedGridviewPrintHeader = false(不显示列头)#region 勾选框全选或反选 List<string> islockList = ...
- D_GLIBCXX_USE_CXX11_ABI
gcc ABI兼容 设置=0,表示使用C++11之前的ABI 反之,使用C++11的ABI
- wsl 的 tail -f 不好使
windows 上的sub linux ubuntu 的tail -f 不好使 在/etc/profile 中加入alias alias tailf='tail -f ---disable-inoti ...
- Linux firewall 命令
常用命令 开启端口命令 firewall-cmd --zone=public--add-port=443/tcp --permanent --zone #作用域 --add-port=80/tcp ...
- sublime 设置快捷键
Tools-> Developer-> New Snippet 打开后保存文件要是以 .sublime-snippet 做结尾 <snippet> <content> ...
- Java基础之注释
注释 在Java的编写过程中我们需要对一些程序进行注释,除了自己方便阅读,更为别人更好理解自己的程序,可以是编程思路或者是程序的作用. 注释不会被执行,是给写代码的人看的. 书写注释是一个非常好的习惯 ...
- windows环境go安装和goland激活
1. go环境安装 1.1. go安装包下载 https://golang.google.cn/dl/ https://studygolang.com/dl 1.2. 安装go环境 1.2.1. 点击 ...
- I2C总线简介-转载
I2C总线简介 - 立创社区 (szlcsc.com) 简介 NXP半导体(原Philips半导体)于20多年前发明了一种简单的双向二线制串行通信总线,这个总线这个总线被称为IIC.Inter-IC或 ...
- Qt中QGraphicsScene和QraphicsView显示坐标问题解决
相信打开这个界面的你,一定遇到了这两玩意儿设置完坐标发现对不上的问题...查询Qt官方文档后发现: 网上搜索了一番,基本上这个坐标系就是长酱紫: 所以加上这行代码就行了: ui->graphic ...
- cadence报错because the library part is newer than the part in the design cache.Select the part in the cache and choose Design-Update Cache,and then place the part again.
cadence报错because the library part is newer than the part in the design cache.Select the part in the ...