关于JAVA中的内部类
内部类可以有
- 存在属性、方法、构造器
- 可以被final修饰
- 可以被abstract修饰
- 可以调用外部类的属性和方法
声明一个People类,在People中进行声明其他类,比如Dog类和Bird类。
public class People {
public int Age;
public String Name;
public void eat(){
System.out.println("人吃饭");
}
public class Dog{
public Dog(){
System.out.println("内部类的构造方法");
}
public void eat(){
System.out.println("狗吃饭");
}
}
public static class Bird extends People{
public void eat(){
System.out.println("鸟吃东西");
}
}
}
可以看到,Bird类可以被static关键字进行修饰,关于内部类的实例化的情况也是分两种:
被static关键字修饰的内部类
注意是使用了外部类直接调用的,因为是静态的内部类
public static void main(String[] args) {
People.Bird bird= new People.Bird();
bird.eat();
}
没有static关键字修饰的内部类
要注意这里的Dog没有static修饰,是People类中的一个结构,需要先实例化People的对象再去调用。写法有点特殊:对象.new 内部类(),别忘了点
public static void main(String[] args) {
People people = new People();
People.Dog dog= people.new Dog();
dog.eat();
}
|