内部类
局部内部类
静态内部类 -- 可以看成一个正常的类去使用
成员内部类
匿名内部类
JAVA的三大特性
JVM GC 代码安全
JAVA面向对象的三大特性
封装
学完了
继承
多态
继承:
现实中
家产,正当的继承关系 遗传 基因还是遗传病
JAVA:
类和类之间的继承 是通过extends关键字进行的
子类可以继承父类的非私有的属性和方法方法和属性(还是属于父类的,子类只是可以调用)
当父类存在有参构造方法的时候,子类必须创建对应参数的构造方法
JAVA中继承只是单继承,没有多继承,可以有多重继承
super关键字
点取父类对象 作用在父子类之间
实例化父类的构造方法
实例化子类的构造方法之前,必须先实例化父类的构造方法
先初始化属性,然后在实例化构造方法
super();代表的是父类的构造方法,只能放在构造方法的第一行
重写:
发生在父子类之间,子类重写父类的方法
方法明相同,参数列表也相同
一般修饰符
final最终的 goto 保留字
final修饰的类,不可以被继承
final修饰的方法,不可以被重写
final修饰的属性是常量,不可以被重新赋值(只可以有初始值,不可被实例化)
一般修饰符:abstract 抽象的
abstract修饰的类是抽象类
抽象类里面可以有抽象方法
抽象类里面可以有普通方法和静态方法
抽象类创建不了对象,创建的是匿名内部类,需要重写抽象类里面所有的抽象方法
抽象类天生是被继承的,发生继承后必须重写抽象类中的抽象方法
抽象了之间也是可以发生继承关系,一定要遵循继承的规则
抽象类继承抽象类不需要重写抽象方法
抽象的修饰的方法不可以有方法体,天生是被重写的,抽象方法只可以定义在抽象类中
ps:Object 是所有类的祖宗类,所有类直接或间接继承自object
接口:
面向接口编程
接口和类是平级的
接口相当于抽象类,接口里面全是抽象方法
接口里面没有构造方法
接口里面声明属性,必须立刻赋值
接口天生是被实现的,实现类似于继承,继承只是单继承,但是实现是多实现
接口可以同时实现多个接口
接口和接口之间是可以有继承关系的,但是也是单继承
接口的出现是为了弥补继承的缺点
抽象类是继承和接口中间的产物
多态:
发生在继承或实现关系中,声明为父类或接口 实现的是子类的对象
多态,意思是类的多种形态,同种声明,不同的个体叫多态
在多态中,如果声明的是父类,实现类是子类,调用的方法和属性必须是父类中出现的
向上转型
子类对象赋值给父类的声明,是向上转型,自动转型
向下转型
父类的类型 转成子类的类型需要强制转,向下转型,需要强制转换
不管是向上转型还是向下转型调用的方法都是声明的类型里面存在的
向下转型中,子类特有的方法可以调用得到,但是会出现运行错误