面向对象
Java的三大特性:JVM ;GC; 代码安全
Java面向对象得三大特性:封装;继承;多态
继承
- 类和类之间的继承 是通过extends关键字进行的,如:
class Son extends Father{ } - 子类可以继承父类的非私有的属性和方法方法和属性(还是属于父类的,子类只是可以调用)
- 当父类存在有参构造方法的时候,子类必须创建对应参数的构造方法.
- supur关键字点取父类对象,this点取当前对象,如super()//实例化父类无参构造方法
- JAVA中继承只是单继承,没有多继承,可以有多重继承
super关键字
1.点取父类对象 作用在父子类之间
2.实例化父类的构造方法
3.实例化子类的构造方法之前,必须先实例化父类的构造方法
4.先初始化属性,然后在实例化构造方法
5.super();代表的是父类的构造方法,只能放在构造方法的第一行
重写
发生在父子类之间,子类重写父类的方法
方法明相同,参数列表也相同
重载:方法明相同,参数列表不相同
一般修饰符
final最终的;static静态的;abstract抽象的
final最终的
final修饰的类,不可以被继承
final修饰的方法,不可以被重写
final修饰的属性是常量,不可以被重新赋值(只可以有初始值,不可被实例化)
abstract 抽象的
- abstract修饰的类是抽象类
- 抽象类里面可以有抽象方法
- 抽象类里面可以有普通方法和静态方法
- 抽象类创建不了对象,创建的是匿名内部类,需要重写抽象类里面所有的抽象方法
- 抽象类天生是被继承的,发生继承后必须重写抽象类中的抽象方法
- 抽象类之间也是可以发生继承关系,一定要遵循继承的规则
- 抽象类继承抽象类不需要重写抽象方法
- 抽象的修饰的方法不可以有方法体,天生是被重写的,抽象方法只可以定义在抽象类中
static静态的
- static修饰内部类
- static关键字修饰方法
3. static关键字修饰变量
被static修饰的成员变量叫做静态变量,也叫做类变量,说明这个变量是属于这个类的,而不是属于是对象,没有被static修饰的成员变量叫做实例变量,说明这个变量是属于某个具体的对象的。
接口
- 面向接口编程
- 接口和类是平级的
- 接口相当于抽象类,接口里面全是抽象方法
- 接口里面没有构造方法
- 接口里面声明属性,必须立刻赋值
- 接口天生是被实现的,实现类似于继承,继承只是单继承,但是实现是多实现
- 接口可以同时实现多个接口
- 接口和接口之间是可以有继承关系的,但是也是单继承
- 接口的出现是为了弥补继承的缺点
- 抽象类是继承和接口中间的产物
多态
发生在继承或实现关系中,声明为父类或接口 实现的是子类的对象
多态,意思是类的多种形态,同种声明,不同的个体叫多态
在多态中,如果声明的是父类,实现类是子类,调用的方法和属性必须是父类中出现的
向上转型
父类 父类对象 = 子类实例;
向下转型
子类 子类对象 = 父类实例;//向下转型也要经过一次向上转型,否则会报类型转换异常。