首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java部类继承

Java部类的构造器必须连接到指向其外围类对象的引用(构造内部类必须给它一个外部类对象的引用,内部类依赖于外部类对象),所以在继承部类的时候,需要在导出类的构造器中手动加入对基类构造器的调用。...所以,我们需要创建一个外围类,然后用一个特定的语法来表明内部类与外围类的关系。 在下例子中,需要给导出类InheritInner一个来自内部类的外围类中的引用。...普通的继承,只需在导出类构造器中加入super();,而内部类则需要外围类对象引用.super(); 1 class WithInner{ 2 class Inner{} 3 } 4 public...WithInner wi = new WithInner(); 10 InheritInner ii = new InheritInner(wi); 11 } 12 } 而进一步,当被继承的内部类只有非默认构造器时应该怎么办呢...extends WithInner.Inner{ InheritInner(WithInner wi){ int i=0; wi.super(i);//如代码所示,当被继承的构造器需要参数时

1.5K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java部类 静态内部类_java部类和内部类

    今天我们分析内部类和静态内部类的区别,首先我们写一个InnerClassTest类,其中有一个内部类InnerClass和静态内部类StaticInnerClass。...倒数5行,StaticInnerClass的innerMethod()报错,显示d() Q:什么是内部类?有什么作用?静态内部类和非静态内部类的区别? 总结 内部类就是定义在另外一个类里面的类。...它隐藏在外部类中,封装性更强,不允许除外部类外的其他类访问它;但它可直接访问外部类的成员。...静态内部类和非静态内部类的区别有: 静态内部类是指被声明为static的内部类,可不依赖外部类实例化;而非静态内部类需要通过生成外部类来间接生成。...静态内部类只能访问外部类的静态成员变量和静态方法,而非静态内部类由于持有对外部类的引用,可以访问外部类的所用成员 参考: 从一道面试题开始说起 枚举、动态代理的原理 java部类有什么好处?

    73450

    java部类 java部类作用

    java部类作用 为什么在Java中需要内部类?总结一下主要有以下四点:   1.每个内部类都能独立的继承一个接口的实现,所以无论外部类是否已经继承了某个(接口的)实现,对于内部类都没有影响。...内部类使得多继承的解决方案变得完整,   2.方便将存在一定逻辑关系的类组织在一起,又可以对外界隐藏。   ...3.方便编写事件驱动程序   4.方便编写线程代码   个人觉得第一点是最重要的原因之一,内部类的存在使得Java的多继承机制变得更加完善。...◆Java部类 一、 含义 ---- 在Java编程语言里,程序是由类(class)构建而成的。在一个类的内部也可以声明类,我们把这样的类叫做内部类。 ?...四、 分类 ---- Java部类可分为成员内部类、局部内部类、匿名内部类、静态内部类

    2.9K20

    java学习之路:28.内部类(成员,局部,匿名,静态)以及继承

    它包含一个fun()方法,在继承此接口的内部类中实现了该方法,如果某个类继承了外部类,由于内部的权限不可以向下转型为内部类InnerClass,同时也不能访问fun()方法,但是却可以访问接口中的fun...这样很好地继承该类的子类隐藏了实现细节,仅为编写子类的人留下一个接口和一个外部类,同时也可以调用fun()方法,但是fun()方法的具体实现过程却被很好地隐藏了,这就是内部类最基本的用途。...public class StaticinnerClass{ static class Inner{ // ......... } } 五.内部类继承部类和其他普通类一样可以被继承...,但是继承部类继承普通类复杂,需要设置专门的语法来完成。...,必须硬性给予这个类一个带参数的构造方法,并且该构造方法的参数为需要继续内部类的外部类的引用,同时在构造方法体中使用a.super()语句,这样才能为继承提供必要的对象引用。

    37931

    Java部类

    Java部类部类简介# ---- Java 一个类中可以嵌套另外一个类,语法格式如下: class OuterClass { // 外部类 // ......侧面说明成员内部类依赖于外部类的优先创建,不然会初始化失败 局部内部类# ---- 定义在一个方法或者一个作用域里面的类,局部内部类的访问仅限于方法或者该作用域 class MyClass{...本部分参考JAVA匿名内部类(Anonymous Classes) 静态内部类# ---- 静态内部类是不需要依赖于外部类的,并且它不能使用外部类的非static成员变量或者方法,这个和普通静态方法不能访问非静态方法或变量的原理一样...# ---- 为什么在 Java 中需要内部类?...总结一下主要有以下四点内部类的使用场景和好处: 1.每个内部类都能独立的继承一个接口的实现,所以无论外部类是否已经继承了某个(接口的)实现,对于内部类都没有影响。内部类使得多继承的解决方案变得完整。

    31800

    Java部类

    Java中,可以将一个类定义在另一个类里面或者一个方法里边,这样的类称为内部类,广泛意义上的内部类一般包括四种:成员内部类,局部内部类,匿名内部类,静态内部类 。...如果成员内部类用private修饰,则只能在外部类的内部访问;如果用public修饰,则任何地方都能访问;如果用protected修饰,则只能在同一个包下或者继承部类的情况下访问;如果是默认访问权限,...2.局部内部类 (1)局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法或者该作用域; (2)局部内部类就像是方法里面的一个局部变量一样,是不能有public...3.匿名内部类 (1)一般使用匿名内部类的方法来编写事件监听代码; (2)匿名内部类是不能有访问修饰符和static修饰符的; (3)匿名内部类是唯一一种没有构造器的类; (4)匿名内部类用于继承其他类或是实现接口...,并不需要增加额外的方法,只是对继承方法的实现或是重写。

    29810

    JAVA冷知识】JAVA真的不支持多继承吗?让我们用内部类去实现JAVA的多继承

    写在前面 ---- JAVA冷知识,今天和小伙伴分享的是 通过内部类的方式实现JAVA的多继承 一个Demo和JDK源码中的具体场景 部分内容参考 《编写高质量代码(改善Java程序的151个建议)》...——烽火戏诸侯 《剑来》 ---- 众多周知,对于面向对象语言来讲,JAVA是不支持多继承的,只支持单继承,但是提供了接口来补偿。...的多继承,其实很简单,关键是对于内部类的特征的掌握,内部类可以继承一个与外部类无关的类,保证了内部类天然独立性,根据这个特性从而实现一个类可以继承多个类的效果 下面我们看一个Demo,声明父母两个接口,...JDK源码中的运用 关于通过内部类来实现java继承的JDK场景,我们简单分析一下 asList List integers = Arrays.asList(1, 2, 3); 这个代码小伙伴们一定不陌生...java通过内部类的方式巧妙的实现了。

    64420

    Java(内部类

    如果一个事物的内部包含另一个事物,那么这就是一个类的内部包含另一个类; 比如可以比作:"身体和心脏" "汽车和发动机"; 内部类又可以分为: 1、成员内部类 2、局部内部类(匿名内部类) 成员内部类:...成员内部类的定义格式: 修饰符 class 外部类名称{ 修饰符 class 内部类名称{ } } 注意:用外可以随意使用,外用,需要内部类的对象; 如下图: 如何使用成员内部类...,两种方式: 1、间接访问:在外部类的方法中,使用内部类,然后在main只调用外部类的方法; 2、直接访问:外部类名称.内部类名称 对象名=new 外部类名称().new 内部类名称(); Body.Heart...格式: 修饰符 class 外部类名称{ 修饰符 返回值类型 外部类成员方法名(参数列表){ class 局部内部类 (){ } } } 如下图: 可以用的权限修饰符...) / private 3、局部内部类:什么都不能写 匿名内部类: 如果接口的实现类(父类的子类)只需要使用一次, 那么这种情况下就可以省略该类的定义,用匿名内部类; 格式: 接口名称 对象名=new

    41410

    Java部类

    虽然成员内部类可以无条件地访问外部类的成员,而外部类想访问成员内部类的成员却不是这么随心所欲了。...虽然成员内部类可以无条件地访问外部类的成员,而外部类想访问成员内部类的成员却不是这么随心所欲了。...比如上面的例子,如果成员内部类Inner用private修饰,则只能在外部类的内部访问,如果用public修饰,则任何地方都能访问;如果用protected修饰,则只能在同一个包下或者继承部类的情况下访问...2.局部内部类   局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法或者该作用域。 ?...匿名内部类在编译的时候由系统自动起名为Outter$1.class。一般来说,匿名内部类用于继承其他类或是实现接口,并不需要增加额外的方法,只是对继承方法的实现或是重写。

    58010

    Java部类-成员内部类、局部内部类、匿名内部类、静态内部类

    Java 中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。...2.局部内部类 局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法或者该作用域。...(4)局部内部类访问外部类的成员属性或者方法时,直接访问; (5)外部类访问局部内部类的成员属性或者方法时,通过先创建对象,再访问,且必须要在作用域。...name:" + inner.name); } } 3.匿名内部类 Java 中可以实现一个类中包含另外一个类,且不需要提供任何的类名直接实例化。...1.每个内部类都能独立的继承一个接口的实现,所以无论外部类是否已经继承了某个(接口的)实现,对于内部类都没有影响。

    1.1K10

    Java部类

    这篇先讲讲Java部类相关的东西。都是结合书本内化而来的,有知识点,也有布衣博主自己的料。...下面分别介绍——   普通内部类  普通情况,或者说最典型的情况,就是一个Java类嵌在另一个Java类中,形成了、外的格局;外部类就是我们普通的类,内部类也是普通的类,特性都满足Java类的特性,...} }  不过,通常情况下,也不会这样去创建内部类对象,基于Java封装的特性,内部类作为一种封装的体现,通常会对调用者隐藏实现细节,而通过外部类的方法来返回内部类的对象实例。...所以你该知道,匿名内部类本质上就是一种代码上的减省,实际上它还是在遵循着Java实现(继承)后再创建对象的语法逻辑的,不信看下面的代码: public class Model { private...Model对象的时候是有继承体系的,也即匿名实体是继承了Model类的,不然实体中的无法使用super调用父类方法;② 不只是接口的实现可以用匿名内部类,普通类的继承也是可以的,只要满足继承体系即可。

    67230

    Java部类

    该类称为外部类,内部类可以无条件访问外部类。 外部类访问内部类需要创建一个对象。 内部类依附外部类而存在,要创建内部类,先要创建外部类的对象。...二.局部内部类 该类访问仅限于方法和该作用域 public class Text2 { int qq = 1397995240; int tel = 151888; public outClass...//若需要返回值, 由于外部没有这个类 可以创建一个接口 实现向上转型 //则上面的 new innerClass2("do");可以去掉 //返回值由void改为接口名; 类要继承这个接口...class innerClass4{ public static void main(String[] args) { System.out.println(i); } } } 内部类继承...newClass = new NewClass(text); newClass.inf(); } } class NewClass extends Text.innerClass{//继承方式

    41720

    Java基础入门之Object类、匿名内部类、构造方法的继承解析

    前言 大家好,我是Java进阶者。这篇文章我们主要介绍Java基础中的Object类、匿名内部类、构造方法的继承知识,一起来学习下吧!...四、总结 本文主要介绍了Object类、匿名内部类、构造方法的继承。 Object类是所有类的父类,所有类都继承Object类。...匿名内部类简单来说就是不知道这个类的名字。创建匿名内部类,只要调用一次就可以了。 构造方法的继承介绍了它的特点,通过他的例子来了解这个构造方法的继承。 希望大家通过本文的学习,对你有所帮助!...------------------- End ------------------- 往期精彩文章推荐: 一篇文章带你了解Java继承那些事儿 一篇文章教会你使用Java中的super关键字基本用法...一篇文章带你了解Java中的static关键字和静态变量、静态方法 一篇文章带你了解Java类的设计和封装及类成员的访问控制

    57210

    java部类

    Java中,可以将一个类定义在另一个类里面或者一个方法里边,这样的类称为内部类,广泛意义上的内部类一般包括四种:成员内部类,局部内部类,匿名内部类,静态内部类 。...如果成员内部类用private修饰,则只能在外部类的内部访问;如果用public修饰,则任何地方都能访问;如果用protected修饰,则只能在同一个包下或者继承部类的情况下访问;如果是默认访问权限,...2.局部内部类 (1)局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法或者该作用域; (2)局部内部类就像是方法里面的一个局部变量一样,是不能有public...3.匿名内部类 (1)一般使用匿名内部类的方法来编写事件监听代码; (2)匿名内部类是不能有访问修饰符和static修饰符的; (3)匿名内部类是唯一一种没有构造器的类; (4)匿名内部类用于继承其他类或是实现接口...,并不需要增加额外的方法,只是对继承方法的实现或是重写。

    11410

    Java部类

    部类优缺点 使用内部类的优点: 1)实现多重继承; 2)内部类可以很好的实现隐藏:一般的非内部类,是不允许有 private 与protected权限的,但内部类可以 3)减少了类文件编译后的产生的字节码文件的大小...内部类的种类: 成员内部类、静态内部类、局部内部类、匿名内部类 成员内部类 1、成员内部类也叫实例内部类。...应用场合:每一个外部类对象都需要一个内部类的实例,内部类离不开外部类存在(相当于心脏对人体) 2、成员内部类的特征: 作为外部类的一个成员存在,与外部类的属性、方法并列成员内部类持有外部类的引用,成员内部类中不能定义...3、静态内部类的特征: 静态内部类不会持有外部类的引用,静态内部类可以访问外部的静态变量,如果访问外部类的成员变量必须通过外部类的实例访问 4、Java中只有内部类才可以是静态的 使用格式:Outer.Inner...1、匿名内部类也就是没有名字的内部类,这是java为了方便我们编写程序而设计的一个机制,因为有时候有的内部类只需要创建一个它的对象就可以了,以后再不会用到这个类,这时候使用匿名内部类就比较合适。

    38120

    Java】内部类

    Java中,可以将一个类定义在另一个类或者一个方法的内部,前者称为内部类,后者称为外部类。内部类也是封装的一种体现。...public class A{ //... } class B{ //... } //A和B是两个独立的类,彼此之间没有关系 内部类和外部类公用一个Java源文件,但是经过编译后,内部类会形成单独的字节码文件...修饰的成员内部类 和静态内部类-->被static修饰的成员内部类) 局部内部类(不谈修饰符)、匿名内部类。...2.1成员内部类 在外部类中,内部类定义位置与外部类成员所处位置相同,因此称为成员内部类。 2.2实例内部类 即未被static修饰的成员内部类。...实例内部类的非静态方法中包含了一个指向外部类对象的引用。 外部类中,不能直接访问实例内部类中的成员,如果要访问必须要先创建内部类对象。

    10810

    Java部类

    部类一般包括这四种:成员内部类、静态内部类、局部内部类和匿名内部类。 每个内部类都能独立地实现一个接口或者抽象类,所以无论其所属的主类是否已经实现一个接口或者抽象类,对于内部类都没有影响。...如果没有内部类提供的可以继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决。从这个角度看,内部类采可以实现多重继承的效果。...成员内部类和静态内部类用private/protected/public修饰时,外部访问规则与访问对应外部类的属性/方法的规则一样;局部内部类不能使用访问修饰符修饰;匿名内部类甚至都不用class关键字来定义...//内部类调用对应主类的同名方法 } } } (1)成员内部类对象中不能定义静态变量、静态方法 (2)要创建成员内部类对象,必须要先创建对应外部类的对象 (3)成员内部类引用对应主类的同名属性...、构造代码块、方法中 (2)局部内部类不可以用访问修饰符(private/protected/public)修饰 4、匿名内部类 匿名内部类也是一种局部内部类,不需要用class关键字来声明,匿名内部类通常是一个抽象类或接口的实现

    40820

    JAVA静态内部类_java静态内部类实例化

    如有不足、不当之处,欢迎拍砖指正~ 静态内部类特性详解 ---- 静态内部类的使用场景   在考虑使用静态内部类时,一般有这样的场景需求:当外部类需要使用内部类,而内部类无需外部类资源,并且内部类可以单独创建...静态内部类的使用限制   对于在外部类的各个方法间定义的内部类,静态与非静态在使用时有不同的限制,主要总结为以下的几个区别:     (1)在方法间定义的非静态内部类:       ● 外围类和内部类可互相访问自己的私有成员...● 非静态内部类中不能定义静态成员变量与方法。     (2)在方法间定义的静态内部类:       ● 只能访问外部类的静态成员变量与方法。       ...● 在创建静态内部类实例时不需要将静态内部类的实例绑定在外部类的实例上。(即内部类可以单独创建实例) /** * 声明静态内部类实例与非静态内部类实例的区别示例。...Inner i = o.new Inner(); 静态内部类的使用样例   关于静态内部类,《Effective Java》一书中还给出了一个这样的使用例子: public class Outer

    1.1K10
    领券