0812总结
几个关系
类与类之间:只能单继承,不可以多继承
类与接口之间:可以实现多个接口
接口与接口之间:可以单继承,也可以多继承
抽象类与接口之间:抽象类是最原始的状态;接口是定义一些约束
内部类
类里面嵌套一个类(类似于身体和心脏)
语法:
public class 外部类名{
public class 内部类名{
}
}
特点
内部类可以获取外部类的属性与方法(包括私有的)
外部类获取不到内部类的属性与方法
成员内部类
公有的内部类:
获取内部类的语法是:外部类名.内部类 对象的名称=new 外部类().new 内部类()
私有的内部类:只能本类访问
变量重名:
外部类的变量与内部类的变量重名,访问外部变量的语法:类名.this.变量名
静态内部类(次重要)
需加上静态的关键字static,且一般去掉访问修饰符
语法:
外部类.内部类 对象的名称 = new 外部类.内部类()
Body.Heart h = new Body.Heart();
方法内部类
语法:
访问修饰符 返回值 方法名称 (参数列表){
class 类名{
//成员属性
//成员方法
//构造
}
}
注意点
1、不能有访问修饰符
2、生命周期随着方法的开始而开始,结束而结束
3、在方法里的内部类的方法不能直接调用,但是可以间接调用:在外部类的方法里实例化这个对象(内部类),然后调用其(内部类)方法
匿名内部类(重点)
(没有名字) 一般是在继承或者实现的基础上
语法
new 抽象类或者接口{
//必须实现的方法
}
访问修饰符
public > protected > 默认 > private
开发里几乎只需要用到 public(对外提供使用)和 private(本类使用)