书中例子:
class A {
interface B {
void f();
}
public class BImp1 implements B {
public void f() {}
}
private class BImp2 implements B {
public void f() {}
}
public interface C {
void f();
}
public class CImp1 implements C {
public void f() {}
}
public class CImp2 implements C {
public void f() {}
}
private interface D {
void f();
}
private class DImp1 implements D {
public void f() {}
}
public class DImp2 implements D {
public void f() {}
}
public D getD() {
return new DImp2();
}
private D dRef;
public void receiveD(D d) {
dRef = d;
dRef.f();
}
}
interface E {
interface G {
void f();
}
//public 可以缺省
public interface H {
void f();
}
void g();
//不可以定义接口内嵌套接口私有的接口
//不可以private interface S{}
}
public class Interf {
public class BImp implements A.B {
public void f(){}
}
class Cimp implements A.B {
public void f() {}
}
//不能implementsA.D因为D是private的
class Eimp1 implements E {
public void g(){}
}
class EGimp1 implements E.G {
public void f(){}
}
class EImp2 implements E {
public void g(){}
}
class EGimp2 implements E.G {
public void g(){}
public void f(){}
}
public static void main(String[] args) {
A a = new A();
//不能访问A.D,不能A.D ad = a.getD()
//!A.Dimp2 di2 = a.getD();不能访问
A a2 = new A();
a2.receiveD(a.getD());
}
}
1.类中嵌套接口,
a.有public和包访问权限2种,并且都可以被public、包访问权限、private的子实现。
b.private修饰的接口既可以被实现为public的也可以是private的
c.但是a.Dimp2只能被起自身使用,因为他实现的接口D是 private的,因此它可以强制该接口的方法不能添加任何类型信息,(也就是不允许向上转型)
d.但是getD方法返回确实private接口D的引用,此方法public的,使用这个方法的返回值只有一种把返回值交给有权使用它的对象。本例中是另外一个A通过receiveD来实现
2.接口内也可以被嵌套
3.Interf 中,你实现某个接口时,并不需要实现接口内部的嵌套接口,private接口不能在定义它的类之外被实现。
分享到:
相关推荐
java 嵌套接口 程序 学习java必须要学习的经典案例,加油学习把
Java实验报告涵盖了一系列关键知识点,包括基础运算、控制语句与数组、多态与嵌套、接口和GUI编程,以及异常处理和多线程。以下是对这些知识点的详细阐述: 1. **基本运算**:Java提供了多种基本数据类型,如整型、...
8. **嵌套接口**:接口内可以定义其他接口,用于组织相关接口。 在Java中,接口通常用于以下几个场景: 1. **定义标准或协议**:如同自动化汽车的例子,汽车生产商定义了一个控制汽车行为的标准接口,导航系统制造...
这种方式可以确保一个接口不仅提供自己的方法,还可以访问嵌套接口中的方法,达到方法的统一。 ```delphi type ILogging = interface procedure LogMessage(const Message: string); end; IUnitOfWork = ...
描述中提到的Java接口,从Java的历史演化来看,经历了多次重要的更新和功能扩展,从最初的只包含静态常量和抽象方法,到后来增加静态嵌套类、嵌套接口、泛型支持、默认方法和静态方法,再到Java9引入的私有方法,...
7. **接口的嵌套**:一个接口可以包含另一个接口作为成员,这被称为嵌套接口。 8. **接口的继承**:接口可以继承其他接口,使用`extends`关键字,这允许接口扩展其他接口的功能。 9. **接口与多态**:接口是多态性...
3. **嵌套接口**:接口可以嵌套在其他接口中,形成更复杂的抽象层次,扩展功能和约束。 Go语言的接口在底层是一个结构体,包含两个成员:`data`和`tab`。`data`通常存储指向实现了接口的对象的指针,而`tab`描述了...
接口默认是`public`,`new`仅用于嵌套接口。 - `identifier`: 接口的名称,通常遵循大写字母"I"开头的约定。 - `base-list`(可选): 显式继承其他接口的列表。 - `interface-body`: 接口成员的声明。 2. **接口...
[public] 嵌套类或嵌套接口; } ``` - **修饰符**:接口可以是`public`的,也可以具有包级访问权限(即不指定修饰符)。接口内的元素默认为`public`。 - **方法定义**:接口中的方法默认为`public abstract`,不允许...
每个类、接口、嵌套类和嵌套接口都有各自的页面。其中每个页面都由三部分(类/接口描述、摘要表,以及详细的成员描述)组成: 类继承图 直接子类 所有已知子接口 所有已知实现类 类/接口声明 类/接口描述 嵌套类...
内部类分为四种类型:成员内部类、局部内部类、匿名内部类和嵌套接口。内部类可以提供更复杂的封装和抽象,尤其在事件处理和设计模式中常见。 7. 匿名类:匿名类是没有名字的类,通常用于一次性创建的对象。它们...
每个类、接口、嵌套类和嵌套接口都有各自的页面。其中每个页面都由三部分(类/接口描述、摘要表,以及详细的成员描述)组成: 类继承图 直接子类 所有已知子接口 所有已知实现类 类/接口声明 类/接口描述 嵌套类...
每个类、接口、嵌套类和嵌套接口都有各自的页面。其中每个页面都由三部分(类/接口描述、摘要表,以及详细的成员描述)组成: 类继承图 直接子类 所有已知子接口 所有已知实现类 类/接口声明 类/接口描述 嵌套类...
每个类、接口、嵌套类和嵌套接口都有各自的页面。其中每个页面都由三部分(类/接口描述、摘要表,以及详细的成员描述)组成: 类继承图 直接子类 所有已知子接口 所有已知实现类 类/接口声明 类/接口描述 嵌套类...
每个类、接口、嵌套类和嵌套接口都有各自的页面。其中每个页面都由三部分(类/接口描述、摘要表,以及详细的成员描述)组成: 类继承图 直接子类 所有已知子接口 所有已知实现类 类/接口声明 类/接口描述 嵌套类...
每个类、接口、嵌套类和嵌套接口都有各自的页面。其中每个页面都由三部分(类/接口描述、摘要表,以及详细的成员描述)组成: 类继承图 直接子类 所有已知子接口 所有已知实现类 类/接口声明 类/接口描述 嵌套类...
每个类、接口、嵌套类和嵌套接口都有各自的页面。其中每个页面都由三部分(类/接口描述、摘要表,以及详细的成员描述)组成: •类继承图 •直接子类 •所有已知子接口 •所有已知实现类 •类/接口声明 •类/接口...
3. **NestedScrollingChild**和**NestedScrollingParent**接口:这是嵌套滑动的两个核心接口,用于实现视图间的滚动事件传递。一个视图如果实现了`NestedScrollingChild`接口,就能向其父视图发送滚动请求;而`...
在嵌套类的上下文中,我们可以创建一个内部接口,只供嵌套类使用,从而实现更细粒度的接口管理。这样可以避免暴露不必要的方法,提高组件的安全性和稳定性。 接下来,我们需要创建一个实现COM接口的类,这个类通常...
4. **嵌套接口**: - 虽然名为“内部类”,但Java也允许接口嵌套在其他接口或类中,这与类的内部类相似,提供了一种组织接口的方式。 5. **内部类访问外部类成员**: - 内部类可以直接访问外部类的所有成员,包括...