java内部类继承类_java内部类基础(内部类继承关系 或外部类整体继承)
class WithInner {
class Inner {
Inner() {
System.out.println("this is a constructor in WithInner.Inner");
};
}
}
//默認(rèn)無(wú)參構(gòu)造器不好使?。有參構(gòu)造器,傳遞外部類,用外部類的supper()去構(gòu)造。
public class InnerExtendsT extends WithInner.Inner {
//InnerExtendsT() {} // Won't compile
//必須傳遞 外部類的引用,并調(diào)用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();
}
}
//當(dāng)你繼承了某個(gè)外圍類的時(shí)候,內(nèi)部類并沒(méi)有發(fā)生什么特別神奇的變化。這兩個(gè)內(nèi)部類是完全獨(dú)立的兩個(gè)實(shí)體,各自在自己的命名空間內(nèi)。
public class MultiExtends extends Egg {
public class Yolk {//重構(gòu)了 它自身的 內(nèi)部類,但是 實(shí)際上 基類的內(nèi)部類并沒(méi)有變化? 雖然是大雞蛋,但是還是小蛋黃
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();構(gòu)造過(guò)程之前進(jìn)行引用對(duì)象的處理。
public void insertYolk(Yolk yy) {
y = yy;
}
public void g() {
if(y == null){
y = new Yolk();//運(yùn)用的時(shí)候,再創(chuàng)建。
}
y.f();
}
}
public class MultiExtends2 extends Egg2 {
public class Yolk extends Egg2.Yolk {//強(qiáng)制繼承 雞蛋的蛋黃
public Yolk() {
System.out.println("BigEgg2.Yolk()");
}
public void f() {
System.out.println("BigEgg2.Yolk.f()");
}
}
/**
* 父類對(duì)象的引用的處理
*/
public MultiExtends2() {
System.out.println("kkkkkk");
insertYolk(new Yolk());? //重新設(shè)置之后,調(diào)用新的對(duì)象。
}
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();
}
}
}
}
總結(jié)
以上是生活随笔為你收集整理的java内部类继承类_java内部类基础(内部类继承关系 或外部类整体继承)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 基于SPI的OLED温湿度显示
- 下一篇: 智能电饭煲电路图及其原理_智能电饭煲工作