`
lihengzkj
  • 浏览: 45218 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

有意思的接口嵌套

阅读更多
/******类中嵌套接口*****/
class A {
	interface B{//----------------B
		void f();
	}
	public class BImp implements B{
		public void f() {}
	}
	private class BImp2 implements B{
		public void f() {}
	}
	public interface C{//public----------------C
		void f();
	}
	class CImp implements C{
		public void f() {}
	}
	private class CImp2 implements C{
		public void f() {}
	}
	private interface D{//private----------------D  像D这种private接口不能再这个类之外实现。
		void f();
	}
	private class DImp implements D{//private类
		public void f() {}
	}
	public class DImp2 implements D{//public类
		public void f() {System.out.println("ooooooooo");}
	}
	public D getD (){
		return new DImp2();
	}
	private D dRef;
	public void receiveD(D d){
		dRef = d;
		dRef.f();
	}
}
/*******接口中嵌套接口********/
interface E{
	interface G{//嵌套的接口必须是public ,这里默认也是public
		void f();
	}
	public interface H{
		void f();
	}
	void g();
}
/******************/
public class NesingInterfaces{
	public class BImp implements A.B{
		public void f() {}
	}
	class CImp implements A.C{
		public void f(){}
	}
	//public class DImp implements A.D{} --私有的接口不能实现,即没有访问的权限
	class EImp implements E{//实现嵌套接口的时候并不需要实现嵌套在内部的接口。
		public void g(){}
	}
	class EGImp implements E.G{
		public void f(){}
	}
	class EGImp2 implements E{
		public void g(){}
		class EG implements E.G{
			public void f(){}
		}
	}
	public static void main(String [] args){
		A a = new A();
		//A.D ad = a.getD();  --D接口是私有的,所以不能直接访问。A.D是行不通的。
		//A.DImp2 adi = a.getD(); --返回的是接口D,而A.DImp2是接口D的实现类。向下转型要强转。
		//a.getD().f();//
		//A.D d ;---由于接口D是私有的,所以以上两种访问方式都是不行的。
		a.receiveD(a.getD());//像正常的get/set方法那样访问的话就没有问题。
		A.DImp2 ad2 = a.new DImp2();
		ad2.f();
	}
}




分享到:
评论

相关推荐

    java嵌套接口程序

    java 嵌套接口 程序 学习java必须要学习的经典案例,加油学习把

    mvp+okgo最简单demo拉起来就用新加接口嵌套调用

    这个项目中的"New接口嵌套调用"可能指的是在一个网络请求完成之后,根据其结果再发起新的网络请求,这通常发生在需要多级数据获取的情况下,比如先获取用户信息,再根据用户ID获取其订单信息等。 总的来说,这个...

    list嵌套list例子

    当我们谈论“list嵌套list”时,这意味着在一个列表内部包含了一个或多个列表,这样的结构可以创建出多维的数据集合。这种数据结构在处理表格数据、矩阵或树形结构时特别有用。 下面我们将详细探讨如何创建、操作和...

    Recyclerview的嵌套使用(嵌套recyclerview)

    当需要在列表中展示另一个列表或者网格时,就会涉及到RecyclerView的嵌套使用,这通常被称为“嵌套RecyclerView”。本篇文章将深入探讨如何实现RecyclerView的嵌套,包括基本概念、配置、适配器和布局管理器的设置,...

    Android嵌套滑动Demo

    3. **NestedScrollingChild**和**NestedScrollingParent**接口:这是嵌套滑动的两个核心接口,用于实现视图间的滚动事件传递。一个视图如果实现了`NestedScrollingChild`接口,就能向其父视图发送滚动请求;而`...

    多级嵌套选项卡_多级嵌套舌签Tabs

    在网页设计中,多级嵌套选项卡是一种常见的交互元素,用于组织大量信息并提供用户友好的导航体验。本文将详细解析"多级嵌套选项卡_多级嵌套舌签Tabs"的设计与实现,以及如何确保其在不同浏览器中的兼容性和可重用性...

    java实验大全 多态 嵌套 接口 同步 异常处理 多线程

    Java实验报告涵盖了一系列关键知识点,包括基础运算、控制语句与数组、多态与嵌套、接口和GUI编程,以及异常处理和多线程。以下是对这些知识点的详细阐述: 1. **基本运算**:Java提供了多种基本数据类型,如整型、...

    COM 嵌套类实现COM

    在嵌套类的上下文中,我们可以创建一个内部接口,只供嵌套类使用,从而实现更细粒度的接口管理。这样可以避免暴露不必要的方法,提高组件的安全性和稳定性。 接下来,我们需要创建一个实现COM接口的类,这个类通常...

    嵌套LISTVIEW嵌套adapter

    当数据结构复杂,需要在一个ListView中显示其他ListView时,我们就会涉及到“嵌套ListView”或者“嵌套adapter”的概念。这通常发生在制作如说明书或使用手册类的应用程序中,因为这些应用往往需要展示层次分明、...

    嵌套调用求阶乘和_C语言_嵌套调用_

    在编程领域,嵌套调用是一种常见的技术,特别是在C语言中。嵌套调用是指在一个函数内部调用另一个函数,这种技术可以实现复杂的逻辑结构,让代码更具可读性和可维护性。本主题将深入探讨如何使用C语言通过嵌套调用来...

    java实现多层嵌套循环参数转换

    在实际项目中,文件`InterfaceAuthManageServiceImpl.java`可能包含了服务层的接口授权管理实现,它可能会使用到上述的多层嵌套循环、参数转换以及数据库操作。而`model_manage_response_group_config.sql`可能是...

    ANSYS Fluent嵌套网格介绍及视频

    最后,定义网格间的接口条件,确保信息在不同层次之间正确传递。 4. **动网格技术**:动网格功能在ANSYS Fluent中用于处理移动边界或变形网格的问题,如机械部件的运动、流体与固体的相互作用等。结合嵌套网格,...

    嵌套Fragment的使用

    5. **通信和事件传递**:嵌套Fragment与宿主Fragment之间的通信可以通过接口、`setTargetFragment()`和`getTargetFragment()`方法,或者使用`LocalBroadcastManager`等方式进行。 6. **适配器和ViewPager**:如果...

    android的listview嵌套listview,列表嵌套列表 android studio版本

    当需求涉及列表中的每个条目本身也需要展示一个子列表时,我们就会遇到ListView的嵌套问题。本教程将详细讲解如何在Android Studio环境下实现ListView的嵌套,以满足这种复杂布局的需求。 首先,我们需要了解基本的...

    基于ADO接口技术的Oracle数据库嵌套表的开发研究.pdf

    在本文中,研究了基于ADO接口技术的Oracle数据库嵌套表的开发过程,特别是涉及到的ADO技术、VC平台下的数据库嵌套表的开发,以及使用ParameterPtr接口对象在其中的作用。为了更全面地理解这一研究,我们首先需要掌握...

    c++嵌套类详细分析

    C++嵌套类详细分析 C++中的嵌套类是指在一个类中定义的类,定义嵌套类的目的是隐藏类名,减少全局的标识符,从而限制用户能否使用该类建立对象。这样可以提高类的抽象能力,并且强调了两个类(外围类和嵌套类)之间...

    matlab_函数嵌套

    MATLAB 函数嵌套是一种高级编程技术,它允许在一个函数内部定义另一个函数。这种特性使得代码组织更加清晰,尤其在处理复杂计算问题时,能够更好地封装和复用代码。以下是对给定标题和描述中所述知识点的详细说明: ...

    无法删除嵌套文件夹

    ### 无法删除嵌套文件夹解决方案 在使用MyEclipse等开发工具时,有时会因为误操作而导致项目中出现无限循环的嵌套文件夹。这种情况下,简单的删除操作往往无法解决问题,甚至会导致资源管理器卡死或命令行操作失败...

    基于layui table返回的值的多级嵌套的解决方法

    在WEB开发中,处理服务器端返回的多级嵌套数据结构对于前端页面渲染是个常见难题。特别是在使用layui框架时,其table组件默认不支持直接解析多级嵌套的JSON数据,因此需要通过特定的方法来解决这一问题。本知识点...

    Unity嵌套滚动ScrollView.zip

    本项目“Unity嵌套滚动ScrollView.zip”着重探讨了如何在Unity中实现ScrollView的嵌套,即在一个ScrollView内嵌入另一个ScrollView,以创建横竖滑动的复杂布局。 首先,我们关注的核心文件是"CustomScrollRect.cs...

Global site tag (gtag.js) - Google Analytics