Interface注意事项
Interface
成员声明
- 声明属性,默认static & final
- 声明方法,默认public
interface Instrument {
int VALUE = 5; // static & final
// Cannot have method definitions:
void play(Note n); // Automatically public
void adjust();
}
接口多重继承的重名问题
- 尽量避免接口方法重名
interface I1 { void f();}
interface I2 { int f(int i);}
interface I3 { int f();}
class C {
public int f() {
return 1;
}
}
// Methods differ only by return type:
class C1 extends C implements I1 {}
interface I4 extends I1, I3 {}
类中嵌套接口
- 在类中嵌套接口,可以声明接口为private
- A.DImp2只能被其自身使用,无法向上转型
- 要想使用getD()的返回值,只能通过A的其他对象对这个返回值进行操作,如receiveD()所展示的那样
class A {
private interface D {
void f();
}
public class DImp2 implements D {
@Override
public void f() {
}
}
public D getD() {
return new DImp2();
}
private D dRef;
public void receiveD(D d) {
dRef = d;
dRef.f();
}
}
class NestingInterfaces {
public static void main(String[] args) {
A a = new A();
//// Doesn’t return anything but A.D:
// A.DImp2 di2 = a.getD();
//// Cannot access a member of the interface:
// a.getD().f();
// Only another A can do anything with getD():
A a2 = new A();
a2.receiveD(a.getD());
}
}
- 正常的向上转型如下:
interface BB {
void f();
}
class DD implements BB {
@Override
public void f() {
System.out.println("DD");
}
}
class UU {
public static void main(String[] args) {
BB dd = new DD();
dd.f();
}
}
Interface注意事项的更多相关文章
- Java学习:接口(interface)的使用于注意事项
接口 接口就是一种公共的规范标准.只要符合规范标准,就可以大家通用. 接口就是多个类的公共规范.接口是一种引用数据类型,最重要的内容就是其中的:抽象方法. 如何定义一个接口的格式 如何定义一个接口的格 ...
- Windows Server 2012 NIC Teaming介绍及注意事项
Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...
- TODO:Golang指针使用注意事项
TODO:Golang指针使用注意事项 先来看简单的例子1: 输出: 1 1 例子2: 输出: 1 3 例子1是使用值传递,Add方法不会做任何改变:例子2是使用指针传递,会改变地址,从而改变地址. ...
- Swift和Objective-C混编注意事项
前言 Swift已推出数年,与Objective-C相比Swift的语言机制及使用简易程度上更接地气,大大降低了iOS入门门槛.当然这对新入行的童鞋没来讲,的确算是福音,但对于整个iOS编程从业者来讲 ...
- java关键字extends(继承)、Supe(父类引用空间)、 This(方法调用者对象)、Instanceof(实例类型-判断对象是否属于某个类)、final(最终)、abstract(抽象) 、interface(接口)0
java 继承使用关键字extends 继承的作用:减少代码量,优化代码 继承的使用注意点: 1子类不能继承父类的私有变量 2.子类不能继承父类的构造方法 3.子类在调用自己的构造方法时 会默认调 ...
- abstract与interface的区别
abstract的用法: //通过abstract 关键字修饰的类叫抽象类. abstract class Animal { String name; String color; abstract p ...
- Masonry使用注意事项
1 理解自身内容尺寸约束与抗压抗拉 自身内容尺寸约束:一般来说,要确定一个视图的精确位置,至少需要4个布局约束(以确定水平位置x.垂直位置y.宽度w和高度h).但是,某些用来展现内容的用户控件,例如文 ...
- Go - template 常用方法详解 及 注意事项
Go template包下面有两个函数可以创建模板实例 func New(name string) *Template func ParseFiles(filenames ...string) (*T ...
- 面向对象、类与对象、成员与局部变量、封装、private、构造函数、this、static、extends、super、final、abstract、interface、多态、内部类、异常【5】
若有不正之处,请多多谅解并欢迎批评指正,不甚感激. 请尊重作者劳动成果: 本文原创作者:pipi-changing本文原创出处:http://www.cnblogs.com/pipi-changing ...
随机推荐
- PyQt(Python+Qt)学习随笔:gridLayout的layoutRowStretch和layoutColumnStretch属性
Qt Designer中网格布局中,layoutRowStretch和layoutColumnStretch两个属性分别设置网格布局中行之间和列之间的拉伸因子,如图: 但是QGridLayout并没有 ...
- [MRCTF2020]Ezpop
题目: Welcome to index.php <?php //flag is in flag.php //WTF IS THIS? //Learn From https://ctf.ieki ...
- SELECT 1,2,3...的含义及其在SQL注入中的用法
首先,select 之后可以接一串数字:1,2,3-只是一个例子,这串数字并不一定要按从小到大排列,也不一定从1开始,这串数字的值和顺序是任意的,甚至可以是重复的,如:11,465,7461,35 或 ...
- CSMA系列区别比较:p-pCSMA;CSMA/CA;CSMA/CD
CSMA系列小结 CSMA,又称载波侦听多路访问协议.在计算机网络课程中,其一共有四个基础协议与两个实际应用(分别是802.11和802.3) 忙 空闲 传输冲突 应用 1-p CSMA 持续侦听,等 ...
- element ui只输入数字校验
注意:圈起来的两个地方,刚开始忘记写type='number'了,导致可以输入'123abc'这样的,之后加上了就OK了
- 侧边栏js样式代码
<!-- menu html --> <div class="container"> <div class="menu-wrap optis ...
- Mybatis执行流程源码分析
第一部分:项目结构 user_info表:只有id和username两个字段 User实体类: public class User { private String username; private ...
- 一位年薪30w软件测试员的职业规划
先抛出一个观点: 那些,担心30岁后,35岁后,40岁后,无路可走的:基本属于能力不够.或者思维太局限.总之,瞎担心/不长进. 具体,见下面正文 曾经,在16年,写过一系列的软件测试从业者职业成长文章 ...
- 用php简单区别泛解析
<?php header('content-type:text/html; charset=utf-8'); $host = '58.com'; $hosts = gethostbyname(' ...
- 卷积涨点论文 | Asymmetric Convolution ACNet | ICCV | 2019
文章原创来自作者的微信公众号:[机器学习炼丹术].交流群氛围超好,我希望可以建议一个:当一个人遇到问题的时候,有这样一个平台可以快速讨论并解答,目前已经1群已经满员啦,2群欢迎你的到来哦.加入群唯一的 ...