java三大要素:继承、封装、多态
继承
每个类只能继承一个类,object默认为所有类的父类
关键字:
1.extends:表示继承,用法为<子类>extends<父类>
2.super:表示当前类的父类,用super()表示调用父类的构造方法
3.this:表示当前类的对象,还可以使用this()表示调用当前类的构造方法
4.fanil:被fanil修饰的变量为常量,被fanil修饰的方法不能被重写的,被fanil修饰的类不能被继承
加载过程:
1.加载main方法
2.将父类的static方法分配执行入口
3.main进栈
4.加载子类——->加载父类
上转型对象:将子类实例化为父类,失去了子类新增的方法,和新增的变量,可以操纵父类的对象和方法,
如果方法被重写,调用的是子类重写的方法,上转型对象可以再次强制转换为子类
方法的重写以及隐藏:
隐藏即父类方法被子类覆盖。
方法的重写规则:
1.参数个数及对应类型必须相同
2.不得修改返回值
3.不得降低访问级别
多态
当一个父类存在多个派生类的时候,并且每个派生类都重写了父类中的某个方法,那么父类的该方法在不同的子类中就出现了不同的行为,这就是多态。
关键字abstract:由abstract修饰的方法叫抽象方法,非抽象类子类必须实现抽象父类的所有抽象方法,有abstract方法必须则类必须为abstract类,abstract类中可以有非抽象方法,抽象类不能被实例化,abstract只关心此方法是否存在,而不关心此方法是否被实现。
接口(interface):接口中所有方法都为抽象方法,关键字implements。<子类>
接口和父类:接口指一个方法,父类指一个类别。一个子类只可以有一个父类但可以有多个接口。
封装 ##
把对象和过程包围起来,实际上是将对象隐藏起来,使用者只能通过已定义的接口进行访问,适当的封装可以让程序更便于理解,也使程序更加安全。
封装的访问级别:
public:可被当前类、同一个包中其他类、不同包中的子类、不同包中的非子类访问
protected:可被当前类、同一个包中其他类、不同包中的子类访问
友好的(即什么都没有):可被当前类、同一个包中其他类访问
private:只可被当前类的内部访问