1.封装的实现
(1)类的私有属性的访问:通过Setter和Getter方法,来实现对类的私有属性的访问。
(2)如果类中的某些数据在初始化后不想被外界修改,则可以使用构造方法配合私有化的Setter函数来实现对数据的封装。
2.继承的实现
(1)继承的基本实现
(2)继承的限制
Java之中不允许多重继承,但可以使用多层继承。
从父类继承的私有成员,不能被子类直接使用:即对于所有的私有成员,子类无法直接操作这些属性,必须通过设置Setter和Getter方法间接操作。
子类在进行对象实例化时,从父类继承而来的数据成员需要先调用父类的构造方法来初始化,然后再用子类的方法来初始化本地的数据成员。
被final类修饰的类不能再被继承。
3.深度认识类的继承
(1)子类对象在实例化时,子类对象实例化会默认先调用父类中的无参构造函数,然后再调用子类构造方法。
4.覆写
(1)方法的覆写:子类继承父类,子类中的方法与父类中的方法名称、参数个数及类型且返回值类型等完全一致时,则称子类的这个方法覆盖了父类中的方法。可以使用super调用父类的方法。注意:返回值类型必须和被覆写的方法返回值类型一致;被覆写的方法不能为static;被覆写的方法不能拥有比父类更为严格的访问控制权限。属性的覆写也类似。
5.多态
(1)基本使用:
(2)方法的多态性体现在方法的重载。
(3)对象的多态性:
向上转型:父类对象通过子类对象去实例化,可以自动完成。父类使用子类的方法,父类引用指向子类对象。
向下转型:父类对象可以转换为子类对象,必须通过强制转换。
(4)隐藏:当不希望父类的方法被子类覆写,即子类实例化后会调用父类的方法而不是子类的方法。使用隐藏(Hide),被关键词static修饰的静态方法时不能被覆盖的,可以利用这种特性达到隐藏。