关于类中定义的内部接口

首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口。由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直接实现这个接口的功能。
不过你可能要质疑,更改一下方法的不就行了吗?
的确,以此作为设计内部类的理由,实在没有说服力。
真正的原因是这样的,java中的内部类和接口加在一起,可以的解决常被C++程序员抱怨java中存在的一个问题 没有多继承。实际上,C++的多继承设计起来很复杂,而java通过内部类加上接口,可以很好的实现多继承的效果

时间: 2024-08-10 15:11:58

关于类中定义的内部接口的相关文章

java类中定义接口

今天看到一个java类中定义了接口,写个备忘录,记录一下 1 package com.gxf.test; 2 3 public class Test_interface { 4 public interface show{ 5 public void show(); 6 } 7 static class TestInterface implements show{ 8 9 @Override 10 public void show() { 11 System.out.println("this

Java中主类中定义方法加static和不加static的区别

Java中主类中定义方法加static和不加static的区别(前者可以省略类名直接在主方法调用,后者必须先实例化后用实例调用) 知识点:1.Getter and Setter 的应用 2.局部变量与成员变量(也可叫做全局变量) 3.Static关键字的用法 a.成员变量被static修饰后的所有类的共享属性 b.方法被static修饰之后,在本类内调用的类名省略问题;以及不用Static,即使在本类内也必须先实例化 4.This关键字的用法 this:是当前类的对象引用.简单的记,它就代表当前

ES6 class类中定义私有变量

ES6 class类中定义私有变量 class类的不足 看起来, es6 中 class 的出现拉近了 JS 和传统 OOP 语言的距离.但是,它仅仅是一个语法糖罢了,不能实现传统 OOP 语言一样的功能.在其中,比较大的一个痛点就是私有变量问题. 何为私有变量?私有变量就是只能在类内部访问的变量,外部无法访问的变量.在开发中,很多变量或方法你不想其他人访问,可以定义为私有变量,防止被其他人使用.在 Java 中,可以使用 private 实现私有变量,但是可惜的是, JS 中并没有该功能. 来

php 类中定义全局变量|php类定义变量|php类定义常量

PHP 预定义超全局数组/变量 => http://www.q3060.com/list3/list117/23295.html PHP预定义变量 - PHP 超级全局变量 => http://www.q3060.com/list3/list117/23278.html php怎么定义全局变量 => http://www.q3060.com/list3/list117/22852.html php 的全局变量与局部变量 => http://www.q3060.com/list3/l

基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------> 可以返回派生类对象的引用或指针

您查询的关键词是:c++primer习题15.25 以下是该网页在北京时间 2016年07月15日 02:57:08 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. 百度和网页 http://bbs.csdn.net/topics/380238133 的作者无关,不对其内容负责.百度快照谨为网络故障时之索引,不代表被搜索网站的即时页面. 首页 精选版块 移动开发 iOS Android Qt WP 云计算 IaaS Pass/SaaS 分布式计算/Hadoop J

C++类中定义常量的方法

好久没用过C++,本来就不太熟悉,今天突然写到一个类,需要在类中定义一个常量,居然花了很长时间. 刚开始写了static const int num = 100: 这样是不行的,因为常量只能在初始化列表中初始化,如果去掉const的话,又不能有"常量"的效果, 在类外用宏定义看起来不科学,类外const也一样,后面就大概搜索了一下,可以选择用枚举类型来替代达到 差不多的效果.具体的代码看下面: class User{ public: enum { MaxNum = 20}; } 写下来

接口自动化____如何根据测试数据excel中的数据量多少 去test类中定义同数据量的测试函数

背景: 在做2.0核心接口测试的时候,针对一个接口,如:客户信息查询 在测试数据的excel中假如填入了三行数据,如何根据 excel中有多少行的数据去动态的定义多少个test函数. 解决方案: 1.由于python的unittest中默认设置是:测试类中的函数,以test开头的会被执行,其他的不被执行,所以先定义一个测试函数,注意取名不能以test开头 比如上图,只有my_2700这么一个函数作为测试函数,这个传入的x是指作为测试数据的EXCEL中的某一行(如传入的是3,就是针对测试数据exc

泛型方法或泛型类中的方法是内部调用、PInvoke 或是在 COM 导入类中定义的。

泛型基类中引用Api函数定义时static extern,在子类中会提示: 未处理TypeLoadException 解决方法:将定义Api函数封装到独立的类中即可 public class GenericClass1<T> { [System.Runtime.InteropServices.DllImport("user32.dll")] public static extern short GetKeyState(int virtKey); public bool Is

类中定义的嵌套结构,有什么作用?

class A { struct B; class C { .......... } B* b; public: void f(); void g(); }; 第一是命名空间的问题,在类里面定义的类或者结构不怕重名,比如说模板类每个类都有个iterator嵌套类,重名也不要紧,更大的好处是还可以利用这个特性写模板函数: template<class T, class Func> void foreach(T& container, Func f) { for(T::iterator i