java中接口知识点大总结
接口的确很不好理解!!!!!那我来好好总结一下:
首先要理解接口是一个独立存在的,和类是不一样的东西,所以,直接用接口的定义是:
访问权限控制符 interface 接口名 [extends 接口列表] {
常量;//接口中的变量都是默认以public static final修饰的
抽象方法;//接口中的方法默认都是以public abstract修饰的,,注意!!!abstract 和private final static 并存
内部类;//接口中可以有内部类
静态方法;//jdk8支持
默认方法;//jdk8支持
}
package com.xt.imp.test;
public interface Animals {
public static final int I=0;
public abstract void eat();
class heart{
}
public static void sleep() {
}
public default void work() {
}
}
访问权限控制符:只能是public 和友好的 接口名和public 修饰的接口名一致
[extends 接口列表]代表:接口可以多继承接口,不能 继承类,对比之前的类只能单继承类
package com.xt.imp.test;
public interface IA extends IMammal,IB {//接口可以多继承接口,不能 继承类,对比之前的类只能单继承类
}
interface IB{//接口前面的访问控制符只能是public 友好的,public修饰的只能在单个文件里
}
接口中没有构造方法,而抽象类有构造方法,抽象类不能被实例化,但是可以继承其构造方法
接口中没有 静态代码块,非静态代码块
类可以 实现多个接口。
实现接口中的抽象方法,必须严格按照重写的规则
package com.xt.imp.test;
public class Whales implements IMammal,Animals {//类可以实现多个接口
@Override
public void move() {
System.out.println("移动。。。");
}
public static void main(String[] args) {
System.out.println(IMammal.i);
}
//实现接口中的抽象方法,必须严格按照重写的规则
@Override
public void eat() {
}
}
如果一个类实现了一个接口,但但没有实现接口中的所有抽象方法,那么这个类必须是abstract类。
如果多个接口中定义了相同的抽象方法,则在实现类中只实现其中一个即可
接口回调描述的是一种现象:接口声明的变量指向其实现类实例化的对象,那么该接口变量就可以调用接口中的抽象方法。
接口没有构造方法,不能创建自己的对象,但是可以引用实现类的对象
package com.xt.imp.test;
public class Studens implements IMammal {
public static void main(String[] args) {
IMammal im = new Studens();
System.out.println(im.i);
im.move();
}
@Override
public void move() {
System.out.println("移动。。");
}
}
函数式接口:
package com.xt.imp.test; @FunctionalInterface
public interface FunctionInterface { void ran();
}
java中接口知识点大总结的更多相关文章
- Java中接口和抽象类的比較
Java中接口和抽象类的比較-2013年5月写的读书笔记摘要 1. 概述 接口(Interface)和抽象类(abstract class)是 Java 语言中支持抽象类的两种机制,是Java程序设计 ...
- 浅谈Java中接口与抽象类的异同
浅谈Java中接口与抽象类的异同 抽象类和接口这两个概念困扰了我许久,在我看来,接口与抽象类真的十分相似.期间也曾找过许许多多的资料,参考了各路大神的见解,也只能是简简单单地在语法上懂得两者的区别.硬 ...
- 【JAVA零基础入门系列】Day9 Java中的那个大数值
什么是大数值?用脚趾头想也知道,当然是"大"的数值(233).Java中有两个用于表示大数值的类,BigInteger和BigDecimal,那到底能表示多大的数值呢?理论上,可以 ...
- 转载 - java中接口的向上转型。和多态性
发现一篇对接口总结很精简的文章 1.在java中接口就是一个完全抽象的类,跟抽象类一样不能产生对象,但是可以作为对象的引用,可以由其实现类向上转型,它就跟超类一样, 向上转型了,可以很好的利用接口,可 ...
- Java 中接口和抽象类的 7 大区别!
本文已收录<Java常见面试题>:https://gitee.com/mydb/interview Java 是一门面向对象的编程语言,面向对象的编程语言有四大特征:抽象.封装.继承和 ...
- java中接口和抽象类有什么区别,举例!
2)接口和抽象类有什么区别?答:马克-to-win:抽象类里可以有实现的方法,接口里不能有,所以相对来讲各方面实现都简单(尤其动态方法调度).另外:类可以实现多个接口.反过来说,也正是抽象类一个致命伤 ...
- 关于java中接口定义常量和类定义常量的区别
/** * * @author YZJ * @Description java中定义常量的最佳方法 */ public final class Contants{ /** * @Description ...
- java中接口之间的继承
最近在读一些源码的时候突然发现了一个很神奇的东西,它的原始形态是这样的: 在这行代码中,BlockingDeque.BlockingQueue和Deque是三个接口.刚发现这个问题时,我是十分吃惊的, ...
- JAVA中接口与抛出异常的相关知识
1.接口概念:接口可以理解为一种特殊的类,由全局常量和公共的抽象方法所组成. 类是一种具体实现体,而接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部数据,也不关心这些类里方法的实现细节,它只 ...
随机推荐
- TCP输入 之 tcp_rcv_established
概述 tcp_rcv_established用于处理已连接状态下的输入,处理过程根据首部预测字段分为快速路径和慢速路径: 1. 在快路中,对是有有数据负荷进行不同处理: (1) 若无数据,则处理输入a ...
- Nginx-rtmp点播之complex handshake
1. 点播的配置 假设配置文件 nginx.conf 中对 rtmp 配置如下: # 创建的子进程数 worker_processes 1; #error_log logs/error.log; er ...
- 【java多线程】多线程中的long和double
在看一些代码的时候,会发现在定义long型和double型的变量时,会在前面加上volatile关键字,当然也会看到在其它原子类型的变量前加上这个关键字,但这里要说的还是有区别的. 在java中,ja ...
- EBI架构 VS. MVC
和 MVC 模式中的 Model 代表着整个后端(包括所有实体.服务和它们之间的关系在内的一切)一样,EBI 模式将边界看作是和外部世界的完整连接,而不仅仅是一个视图.一个控制器或是一个接口(这里指的 ...
- python jieba分词小说与词频统计
1.知识点 """ 1)cut() a) codecs.open() 解决编码问题 b) f.readline() 读取一行,也可以使用f.readlines()读取多行 ...
- GCC 9.2 2019年8月12日 出炉啦
GNU 2019-08-12 发布了 GCC 9.2https://gcc.gnu.org/onlinedocs/9.2.0/ 有详细的说明 MinGW 上可用的 GCC 9.2 版本下载地址 [ m ...
- 移动端1px 边框
伪类+ transform .border_1px:before{ content: ''; position: absolute; top: 0; height: 1px; width: 100%; ...
- Day05:集合操作——线性表(二) / 查找表 / 文件操作——File(一)
文件操作:https://www.cnblogs.com/wsnb8/p/11403626.html
- Java 高级 --- 多线程快速入门
这世上有三样东西是别人抢不走的:一是吃进胃里的食物,二是藏在心中的梦想,三是读进大脑的书 多线程快速入门 1.线程与进程区别 每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程.线程是一组 ...
- NOIp2016 D2T3 愤怒的小鸟【搜索】(网上题解正解是状压)
题目传送门 没啥别的想法,感觉就是搜索,经过原点的抛物线已知两个点就可以求出解析式,在还没有被打下来的两个猪之间随意配对,确定解析式之后标记在这个抛物线下被打下来的猪. 猪也可以单独用一个抛物线打下来 ...