抽象类中嵌套接口

更新记录

【1】2020.02.08-16:37

1.完善内容

正文

我正在看内部类与接口的时候,突然萌生出一个想法:抽象类中能不能嵌套接口呢?
于是我准备试一试:

abstract class AbstractClass{
    interface in{
        public void print();
    }
}

没想到,这种写法竟然被认可
经过一番分析后觉得是有道理的

那么问题来了:怎么实现接口呢?
其实这和内部类很像,只要分别实现抽象类与接口就可以

public class class4 extends AbstractClass implements AbstractClass.in{
    public void ab3() {
        System.out.println("非抽象类中实现抽象类中的接口");
    }
    public void XX(){}                                                    //实现抽象类中的抽象方法
}

实现后,肯定要用啊

public static void main(String[] args) {
    AbstractClass.in inIn = new class4();
    inIn.ab3();
}

运行结果:非抽象类中实现抽象类中的接口

除此之外,还可以使用匿名内部类的形式去写,调用方式与上面相同

Super.in inIn = new Super.in() {
    public void ab3() {
        // TODO Auto-generated method stub
    }
};
inIn.ab3();

本文如有不严谨之处,欢迎各位大佬指出

原文地址:https://www.cnblogs.com/zythonc/p/12283991.html

时间: 2024-07-29 21:16:09

抽象类中嵌套接口的相关文章

“全栈2019”Java第八十七章:类中嵌套接口的应用场景(拔高题)

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第八十七章:类中嵌套接口的应用场景(拔高题) 下一章 "全栈2019"Java第八十八章:接口中嵌套接口的应用场景 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"J

“全栈2019”Java第八十八章:接口中嵌套接口的应用场景

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第八十八章:接口中嵌套接口的应用场景 下一章 "全栈2019"Java第八十九章:接口中能定义内部类吗? 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java学习

Java之嵌套接口详解(附源码)

示例源码 接口可以嵌套在类或其他接口中.这揭示了许多非常有趣的特性: package com.mufeng.theninthchapter; class A { interface B { void f(); } public class BImp implements B { @Override public void f() { // TODO Auto-generated method stub } } private class BImp2 implements B { @Overrid

类与接口(三)java中的接口与嵌套接口

一.接口 1. 接口简介 接口: 是java的一种抽象类型,是抽象方法的集合.接口比抽象类更加抽象的抽象类型. 接口语法: [修饰符] [abstract] interface 接口名 [extends 父接口名列表]{ [public] [static] [final] 常量; [public] [abstract] 方法; [public] [static] 方法{}://JDK1.8后 [public] [static] 类/接口: } 2. 接口成员的修饰符 接口中的所有成员的访问权限默

浅谈C#中的接口和抽象类

C#中接口为"其他方面互不相干"的类型提供公共的服务和特征:C#中class只支持但继承,使用接口却支持多继承,例如:C#中System.String是从System空间中的4个interface继承而来.public sealed class String:ICompare,ICloneable,ICovertible,IEnumerable:C#中对class使用sealed关键字修饰,代表这个类不能够被在其他类继承. 接下来描述一下2者的区别: 1.两者表达的概念不一样,抽象类是

分清java中的接口和抽象类

抽象是面向对象设计的几大特点之一,在Java语言中的体现则是抽象类和接口.这两者十分的相似,想很多初学者甚至接触Java几年的人也很难分清他们.今天笔者在查看集合类相关的代码的时候,发现了有部分是接口如List.Map等,有部分是抽象类如AbstractList.AbstractSet等,由于对两者不是十分的清楚,比较迷惑.所以今天笔者在本文则主要介绍下这两者的区别. 抽象类 抽象方法 利用abstract修饰只有声明没有实现的方法,叫做抽象方法.如: abstract void fun();

c#中抽象类(abstract)和接口(interface)的相同点与区别

相同点: 1.都可以被继承 2.都不能被实例化 3.都可以包含方法声明 4.派生类必须实现未实现的方法 区别: 1.抽象基类可以定义字段.属性.方法实现.接口只能定义属性.索引器.事件.和方法声明,不能包含字段. 2.抽象类是一个不完整的类,需要进一步细化,而接口是一个行为规范.微软的自定义接口总是后带able字段,证明其是表述一类“我能做...” 3.接口可以被多重实现,抽象类只能被单一继承 4.抽象类更多的是定义在一系列紧密相关的类间,而接口大多数是关系疏松但都实现某一功能的类中 5.抽象类

JAVA中的接口和抽象类

在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类往往用来表征我们在对问题领域进行分析. 设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象,我们不能把它们实例化(拿不出一个具体的东西)所以称之为抽象. 比如:我们要描述“水果”,它就是一个抽象,它有质量.体积等一些共性(水果有质量),但又缺乏特性(苹果.橘子都是水果,它们有自己的特性),我们 拿不

【Java面试题】60 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?

接口可以继承接口.抽象类可以实现(implements)接口,抽象类可以继承具体类.抽象类中可以有静态的main方法. 问:  抽象类是否可继承实体类 (concrete class) 答: 抽象类是可以继承实体类,但前提是实体类必须有明确的构造函数. 答案很明确,可以继承.其实从Object就是个实体类,Java的API文档里,每个抽象类的条目里都明确写着直接或间接继承自Object,所以这点是没有疑问的. 关键在于这答案里所说的"前提是实体类必须有明确的构造函数"一句,是什么意思.