class WithInner {

class Inner {

Inner() {

System.out.println("this is a constructor in WithInner.Inner");

};

}

}

//默认无参构造器不好使 。有参构造器,传递外部类,用外部类的supper()去构造。

public class InnerExtendsT extends WithInner.Inner {

//InnerExtendsT() {} // Won't compile

//必须传递 外部类的引用,并调用supper()才可以。

InnerExtendsT(WithInner wi) {

wi.super();

System.out.println("this is a constructor in InheritInner");

}

public static void main(String[] args) {

WithInner wi = new WithInner();

InnerExtendsT ii = new InnerExtendsT(wi);

}

}

————————————————————————————————————————————

class Egg {

private Yolk y;// 蛋黄

protected class Yolk {

public Yolk() {

System.out.println("Egg.Yolk()");

}

}

public Egg() {

System.out.println("New Egg()");

y = new Yolk();

}

}

//当你继承了某个外围类的时候,内部类并没有发生什么特别神奇的变化。这两个内部类是完全独立的两个实体,各自在自己的命名空间内。

public class MultiExtends extends Egg {

public class Yolk {//重构了 它自身的 内部类,但是 实际上 基类的内部类并没有变化  虽然是大鸡蛋,但是还是小蛋黄

public Yolk() {

System.out.println("BigEgg.Yolk()");

}

}

public static void main(String[] args) {

new MultiExtends();

}

}

——————————————————————————————————————————————

class Egg2 {

protected class Yolk {

public Yolk() {

System.out.println("inner class initialize beforing......class initialing....");

System.out.println("Egg2.Yolk()");

}

public void f() {

System.out.println("Egg2.Yolk.f()");

}

}

public Egg2() {

System.out.println("New Egg2()");

}

private Yolk y ;// = new Yolk();构造过程之前进行引用对象的处理。

public void insertYolk(Yolk yy) {

y = yy;

}

public void g() {

if(y == null){

y = new Yolk();//运用的时候,再创建。

}

y.f();

}

}

public class MultiExtends2 extends Egg2 {

public class Yolk extends Egg2.Yolk {//强制继承 鸡蛋的蛋黄

public Yolk() {

System.out.println("BigEgg2.Yolk()");

}

public void f() {

System.out.println("BigEgg2.Yolk.f()");

}

}

/**

* 父类对象的引用的处理

*/

public MultiExtends2() {

System.out.println("kkkkkk");

insertYolk(new Yolk());  //重新设置之后,调用新的对象。

}

public static void main(String[] args) {

Egg2 e2 = null;

e2 = new MultiExtends2();

e2.g();

}

}

————————————————类嵌套——————————————————————————

public class MultiNestingAccess {

public static void main(String[] args) {

MNA mna = new MNA();

MNA.A mnaa = mna.new A();

MNA.A.B mnaab = mnaa.new B();

mnaab.h();

}

}

class MNA {

private void f() {

}

class A {

private void g() {

}

public class B {

void h() {

g();

f();

}

}

}

}

java内部类继承类_java内部类基础(内部类继承关系 或外部类整体继承)相关推荐

  1. java 局部内部类常用么_Java中的内部类

    一.内部类概述 在一个类的内部定义一个类.在 A 类中定义 类 B.B 类就被叫做 A 的内部类.A 类就是 B 的外部类. 二.内部类的种类 内部类分为:成员内部类.静态内部类.局部内部类.匿名内部 ...

  2. java常用class类_java常用类

    java常用类 内部类 1.成员内部类:在一个类的内部定义一个完整的类 例如:外部类public class Body{ 内部类class Header{ } } 内部类可以直接访问外部类的私有成员, ...

  3. java 访问内部类的属性_java中的内部类详细总结

    内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类 如同一个人是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液.跳动) 显然, ...

  4. java 继承类_java类的继承

    继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(重写)的方式,产生一个新的类型.继承是面向对 象的三个基本特征--封装.继承.多态的其中之一,我们在使用java时编写的每一个类都是 ...

  5. java的static类_java中staticclass静态类详解

    一般情况下是不可以用static修饰类的.如果一定要用static修饰类的话,通常static修饰的是匿名内部类. 在一个类中创建另外一个类,叫做成员内部类.这个成员内部类可以静态的(利用static ...

  6. java 反射 本类_Java 反射 Class类

    Java 反射 Class类 @author ixenos 摘要:Class类在反射中的地位.构造Class对象的三种方式.Class对象构造对应类型对象的三种方式 Class类在反射中的地位 位于j ...

  7. java 内部匿名类_java匿名类和匿名内部类详解

    匿名类是指没有类名的内部类,必须在创建时使用 new 语句来声明类.其语法形式如下:new() { //类的主体 }; 这种形式的 new 语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一 ...

  8. java 虚拟机内存类_java 虚拟机类加载 及内存结构

    在面试java工程师的时候,这道题经常被问到,故需特别注意. 1.JVM 简介 JVM 是我们Javaer 的最基本功底了,刚开始学Java 的时候,一般都是从"Hello World &q ...

  9. java 数组 字符串 编程_Java语言基础知识之字符串数组

    Java语言基础知识之字符串数组 java语言中,数组是一种最简单的复合数据类型.数组是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和下标来唯一地确定数组中的元素.数组有 ...

最新文章

  1. mysql表中的多对多关系表_「一对多」关系型数据库中一对多,多对一,多对多关系(详细) - seo实验室...
  2. 一周一论文(翻译)——[IEEE 14] Elastic scaling for data stream processing
  3. idea 项目编译不成功-循环依赖的问题
  4. tps波动很大的原因_花生价格小幅上涨,要突破6元大关?粮贩:还有很大距离...
  5. buffer java nio_Java NIO深入理解Buffer(缓冲区)
  6. 简短—揭开数学学科对于计算机应用的神秘面纱
  7. 官宣!阿里进军 5G,成立 XG 实验室发力新基建
  8. 滨州学院计算机自荐考试题型,滨州学院期末考试试卷标准样式.doc
  9. 如何通过投掷一枚硬币产生各种概率
  10. 不用代码隐藏自定义列表
  11. jquery事件绑定的几种用法
  12. 如果说《热带风暴》在你身上刮过,你还剩下什么?
  13. Hyperledger04
  14. 用c语言屏蔽鼠标键盘,用VBS屏蔽键盘和鼠标
  15. java计算机毕业设计基于Web的上门家教系统的设计与实现源码+数据库+系统+lw文档+mybatis+运行部署
  16. c++灵魂科普(1)
  17. Android 获取摄像头像素,个数
  18. Android updater-scripts(Edify Script)各函数详细说明【转】
  19. Vue核心⑨(数据监测原理)
  20. ddddyla看电影项目总结

热门文章

  1. 从10亿光年到0.1飞米
  2. hku-mars/livox_camera_calib 痛苦配置
  3. 帷幕的帷是什么意思_《老酒馆》热播背后:你真的看明白大戏背后的意思了吗?...
  4. opencv+python图像识别,麻将牌识别,实现自动打牌方案
  5. springboot的登录拦截器的学习
  6. 人生就是一场永不停歇的修行
  7. 4G无线WIFI太阳能低功耗监控摄像头野外4G监控无电无网远程摄像机
  8. 【openjudge 计算概论(A)】[基础编程练习(运算成分)]
  9. [Offer收割]编程练习赛2 hihocoder 1272 买零食 (DFS 或 dp 水题)
  10. 基于Testbench的FPGA实物自动化测试环境设计