标签:etl bst 类型 ati 语句 父类 live 直接 成员内部类
class 外部类 { class 内部类{
} }
class Car { //外部类 class Engine { //内部类 } }
外部类名.内部类名 对象名 = new 外部类型().new 内部类型();
public class Person { private boolean live = true; class Heart { public void jump() { // 直接访问外部类成员 if (live) { System.out.println("心脏在跳动"); } else { System.out.println("心脏不跳了"); } } }public boolean isLive() { return live; } public void setLive(boolean live) { this.live = live; } }
public class InnerDemo { public static void main(String[] args) { // 创建外部类对象 Person p = new Person(); // 创建内部类对象 Heart heart = p.new Heart(); // 调用内部类方法 heart.jump(); // 调用外部类方法 p.setLive(false); // 调用内部类方法 heart.jump(); } } 输出结果: 心脏在跳动 心脏不跳了
new 父类名或者接口名(){ // 方法重写 @Override public void method() { // 执行语句 } };
public abstract class FlyAble{ public abstract void fly(); }
public class InnerDemo { public static void main(String[] args) { //1.等号右边:是匿名内部类,定义并创建该接口的子类对象 2.等号左边:是多态赋值,接口类型引用指向子类对象 FlyAble f = new FlyAble(){ public void fly() { System.out.println("我飞了~~~"); } }; //调用 fly方法,执行重写后的方法 f.fly(); } } } }
public class InnerDemo2 { public static void main(String[] args) { /*1.等号右边:定义并创建该接口的子类对象 2.等号左边:是多态,接口类型引用指向子类对象 */ FlyAble f = new FlyAble(){ public void fly() { System.out.println("我飞了~~~"); // 将f传递给showFly方法中 showFly(f); } } public static void showFly(FlyAble f) { f.fly(); } }
public class InnerDemo3 { public static void main(String[] args) { /*创建匿名内部类,直接传递给 * showFly(FlyAble f) * */ showFly( new FlyAble(){ public void fly() { System.out.println("我飞了~~~"); } } ); } public static void showFly(FlyAble f) { f.fly(); } }
标签:etl bst 类型 ati 语句 父类 live 直接 成员内部类
原文地址:https://www.cnblogs.com/yangzhixue/p/12288947.html