封装
本质:让类的调用者不必太多的了解类的实现者是如何实现类的,只要知道如何使用类就行了,降低了类使用者的难度,降低了复杂度
private :实现封装,如果被private修饰,这个属性只能在类内被访问,当成员变量被设置为私有的,那么 需要提供一系列的get和set方法或构造方法来初始化成员变量。
继承(extends)的目的是为了代码重用 表达了 is - a 的关系 继承中的子类也叫派生类,父类也叫基类,超类。
1. 在java中,只能继承一个类,不能同时继承多个类,它支持单继承。
2. 父类的私有的属性和方法,子类可以继承,但不能在子类中进行访问。
3. 子类如果要实例化,那么首先需要实例化父类。如果子类要构造,需要首先构造父类。在子类当中,如何来构造父类? 构造对象只有一种方法,那就是调用构造方法来构造对象。使用super关键字。 super代表父类对象的引用。
类前加final ,叫做密封类,不会被继承final修饰的方法叫做密封方法。
多态:也称动态绑定,运行时绑定
三步发生多态
向上转型:父类引用 引用子类对象。(子类给父类赋值)向上转型发生的情况:直接赋值 传参 返回值
子类和父类有同名的覆盖方法。
重写:父类子类方法名相同,参数也相同 ,子类版本的方法的返回值类型应该要和父类版本的类型相同或者是子类。 子类版本的访问权限控制不应该低于父类的版本。
重载:在一个类里面,两个方法名相同,参数列表不同(类型不同,个数不同),返回值不做要求。
通过父类的引用,调用该重写方法,此时就会发生动态绑定,也就是多态。之所以叫动态绑定 是因为调用一个方法到底执行父类版本还是子类版本,是在运行时决定的,而不是在编译时决定的,所以称为动态绑定,也叫运行时绑定