内部类
内部类
内部类分为:---为了解决java没有多继承的问题
1、成员内部类---成员内部类可以很轻松的调用外部类的方法和属性---变通的实现了多继承,外部类调用修饰符是public的内部类,用new;外部有同名的方法或者属性,用外部方名.this.
因为内部类是一个类,调用完以后不会像方法调用以后就会被销毁(方法是放在栈上,调用完就销毁),所以为了避免冲突,就会用final变成常量
2、局部内部类--就相当于在方法内部再生成一个类,局部内部类,没有访问修饰符;局部内部类或者匿名内部类,如果使用外部类的局部变量,这个局部部变量必须是用final修饰---即为常量,JDK1.8以前,不许用final声明,之后,自动帮我们加上final修饰,即为常量-----很少用
public void localinner(int num){
class LocalInner{
public void localShow(){
system.out.prinln(dddddddddddddd)
}
}
LocalInner li=new LocalInner();
li.localShow();
}
4、静态内部类---在静态内部类中,不能访问外部类中费静态的属性和方法
public static class staticInner{
public void staticInnerShow(){
system.out.prinln(dddddddddddddd)
}
}
3、匿名内部类
pet是抽象类,new 了一个不知名的类
Pet p=new Pet(){
public void happy(){
system.out.prinln(dddddddddddddd)
}
p.happy();
}