package cn.learn.Interface;

public interface MyInterfaceA {
public abstract void methodA();
public abstract void methodAbs();
public default void methodDefault(){
System.out.println("aaa");
}
}
package cn.learn.Interface;

public interface MyInterfaceB {
public abstract void methodB();
public abstract void methodAbs();
public default void methodDefault(){
System.out.println("bbb");
}
}

 package cn.learn.Interface;
/*
类与接口的区别
1.类与类之间是单继承的,直接父类只有一个
2.类与接口之间是多实现的,一个类可以实现多个接口
3.接口与接口之间是多继承的,某个接口想要其他接口的多种抽象方法 下面的借口,内含五种方法
1.methodA
2.methodB
3.method
**4.methodAbs 同时来源与借口A与B,只写一个
5.methodDefault() 必须重写
*
注:多继承接口的类中,多父继承的接口方法冲突没关系,但是default方法重复会有问题 */ public interface ExtendsInteface extends MyInterfaceB,MyInterfaceA {
public abstract void method(); @Override
default void methodDefault() { }
} package cn.learn.Interface;
//多继承的接口的实现
//其中methodAbs是不冲突的,因为抽象方法没有方法体 public class ExtendsInterfaceImpl implements ExtendsInteface {
//重写默认方法,java12 不用带default关键字?
@Override
public void methodDefault() { } @Override
public void method() { } @Override
public void methodA() { } @Override
public void methodB() { }
//重写冲突的抽象方法
@Override
public void methodAbs() { }
}

 package cn.learn.Interface;
/*
接口注意事项:
1.接口没有静态代码块static{}和构造方法 2.虽然一个类的直接父类是唯一的,但是一个类可以同时实现多个接口
格式:
public class MyInterfaceImpl implements 接口A名称,接口B名称{
//覆盖所有抽象方法
} 3.如果实现类中实现的多个接口中,存在重复的抽象方法,那么只需要覆盖重写
一次即可(如果是多个接口有default方法,必须在此类进行覆盖重写) 4.如果实现类没有实现所有接口的所有抽象方法
实现类必须是抽象类 6.一个子类如果继承直接父类当中的方法,和接口中的默认方法产生冲突,优先用父类方法
格式:
public class 子类名称 extends 父类 implements 接口{
方法体

注:这种情况下不必重写接口的default方法,因为优先级低于父类 */
//java中所有的类都直接或者间接的是Object的子类,如下
public class MyinterfaceImpl extends Object implements MyInterfaceA,MyInterfaceB{
//重写两个接口相同的抽象方法
@Override
public void methodAbs() {
System.out.println("重写两个接口相同的抽象方法");
} @Override
public void methodDefault() { } //覆盖重写了接口A与接口B所有的抽象方法
@Override
public void methodA() {
System.out.println("覆盖重写了A方法");
} @Override
public void methodB() {
System.out.println("重写了B方法");
}
}
 
/*
接口内容总结
1.成员变量其实是有 public static final修饰,即为全局常量
且常量必须赋值,并不可改变
格式要完全大写,用下划线分割单词, 2.接口中最重要的是抽象方法,格式:
public abstract 返回值类型 方法名(参数列表);
注意:实现类必须重写所有所有接口方法,除非是抽象类 3.从java 8开始,接口允许定义默认方法,格式:
public defalut 返回值类型 方法名称(参数列表){
方法体
}
注意:默认方法也可以覆盖重写 4.从java 8开始,接口允许定义静态方法,格式:
public static 返回值类型 方法名称(参数列表){
方法体
}
注意:static应该通过接口名称进行调用,不能通过实现类调用static修饰的方法 5.从java 9开始,接口允许定义私有方法,格式
普通私有方法:
public private 返回值类型 方法名称(参数列表){
方法体
}
静态私有方法:
public private static 返回值类型 方法名称(参数列表){
方法体
}
注意:private的方法只有接口自己能调用,不能被实现类或别人使用 */

Interface-接口的实现与注意事项的更多相关文章

  1. Java学习:接口(interface)的使用于注意事项

    接口 接口就是一种公共的规范标准.只要符合规范标准,就可以大家通用. 接口就是多个类的公共规范.接口是一种引用数据类型,最重要的内容就是其中的:抽象方法. 如何定义一个接口的格式 如何定义一个接口的格 ...

  2. golang面向对象和interface接口

    一. golang面向对象介绍 1.golang也支持面向对象编程,但是和传统的面向对象编程有区别,并不是纯粹的面向对象语言.2.golang没有类(class),golang语言的结合体(struc ...

  3. as3.0 interface接口使用方法

    [转]as3.0 interface接口使用方法 AS在2.0的时候就支持接口了 接口能够让你的程序更具扩展性和灵活性,打个例如 比方你定义了一个方法 代码: public function aMet ...

  4. interface接口

    当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另一种形式定义和表示,就是接口 interface. 定义接口使用的关键字不是class,是interface.接口中常见的成员: 这些成员都有 ...

  5. Golang 入门系列(四)如何理解interface接口

    前面讲了很多Go 语言的基础知识,包括go环境的安装,go语言的语法等,感兴趣的朋友,可以先看看之前的文章.https://www.cnblogs.com/zhangweizhong/category ...

  6. go interface接口

    一:接口概要 接口是一种重要的类型,他是一组确定的方法集合. 一个接口变量可以存储任何实现了接口方法的具体值.一个重要的例子就是io.Reader和io.Writer type Reader inte ...

  7. java interface接口的传值方法

    A 类 package interface_test; public class A { private IPresenter ip; public A(IPresenter ip) { this.i ...

  8. JAVA 构造器, extends[继承], implements[实现], Interface[接口], reflect[反射], clone[克隆], final, static, abstrac

    记录一下: 构造器[构造函数]: 在java中如果用户编写类的时候没有提供构造函数,那么编译器会自动提供一个默认构造函数.它会把所有的实例字段设置为默认值:所有的数字变量初始化为0;所有的布尔变量设置 ...

  9. 011-对象——interface接口说明与使用方式实例

    <?php /** interface接口说明与使用方式实例 * * 接口里面的方法全是抽象方法,没有实体的方法.这样的类我们就叫做接口.定义的时候用Interface定义.实现接口时用impl ...

  10. Java Interface接口

    Java 中接口概念 接口可以理解为一种特殊的 类,由 全局常量 和 公共的抽象方法 所组成. 类是一种具体实现体,而接口定义了某一批类所需要遵循的规范,接口不关心这些类的内部数据, 也不关心这些类里 ...

随机推荐

  1. 回溯---IP 地址划分

    IP 地址划分 93. Restore IP Addresses(Medium) Given "25525511135", return ["255.255.11.135 ...

  2. spring,get请求中带date日期格式参数,后台无法转换的问题

    今天遇到个很奇怪的问题.前端 的查询条件中带有日期范围日期的格式 是 yyyy-MM-dd HH:mm 结果后台报错 org.springframework.validation.BindExcept ...

  3. 发现一个好的后台模板 xtreme admin

    Xtreme Admin Dashboard 是基于 bootstrap 4 的管理仪表板和控制管理面板. Xtreme 是完全响应的 HTML 模板,基于 CSS 框架 Bootstrap 4 并基 ...

  4. File基本操作

    File (1)File是文件和目录路径名的抽象表示.IO流操作中大部分都是对文件的操作,因此Java就提供了File类供我们来操作文件. (2)构造方法 根据一个路径得到一个File对象      ...

  5. 转载——CentOS---网络配置详解

    看到一篇关于Centos网络配置很详细的文章,特此复制来.原文网址:http://blog.chinaunix.net/uid-26495963-id-3230810.html 一.配置文件详解在RH ...

  6. Oracle Grid,ASM,Database on Redhat 7.5

    目录 Oracle安装包 Oracle官方文档 Blog Oracle Grid Installation Process 用户.组.目录 Oracleasm 创建 ASM 磁盘 Database S ...

  7. 零点.Net Core 接触

    一.Program.cs类与Startup类 1.一切从Main开始,Main方法包含了是整个应用程序的入口 ASP.NET Core应用程序可以配置和启动主机(Host). 主机负责应用程序启动和生 ...

  8. Codeforces Round #585 (Div. 2) [补题]

    前言 2019.9.16 昨天下午就看了看D题,没有写对,因为要补作业,快点下机了,这周争取把题补完. 2019.9.17 这篇文章或者其他文章难免有错别字不被察觉,请读者还是要根据意思来读,不要纠结 ...

  9. PCB项目 X1 STC12C5A60S2-LQPF48

    单片机控制系统双层板STC51 简介: STC12C5A60S2主芯片,12MHz主频 12V电源输入,12/5/3V电源输出 4路0~12V可调10位ADC输入 4路1A大电流达林顿输出 4路INT ...

  10. xss盲打

    什么是xss盲打? 简单来说,盲打就是在一切可能的地方尽可能多的提交xss语句,然后看哪一条会被执行,就能获取管理员的cooike.趁着没过期赶紧用了,这样就能直接管理员进后台.然后再上传一句话,大马 ...