JAVA 封装, 继承, 多态
继承
Java三大特征之一:继承。Java的继承具有单继承的特点,每个子类只能有一个直接父类。
继承的特点
Java的继承用extends关键字来实现,被继承的类成为父类,实现继承的类被称为子类。子类和父类的关系就比如现实生活中儿子与父亲的关系。子类继承父类所有的“特点”,子类是父类的扩展,子类是一种特殊的父类,获得父类的全部属性和方法
封装
概念理解
封装是指将对象的状态信息隐藏在对象内部,不允许外部的程序直接访问对象内部的信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。
封装是面向对象编程语言对客观世界的模拟,客观世界里的属性都是被隐藏在对象内部,外界无法直接操作和修改。
封装的好处很多:
1、 隐藏类的实现细节
2、 让使用者只能通过预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对属性的不合理访问。
3、 可进行数据检查,从而有利于保证对象信息的完整性。
4、 便于修改,提高代码的可维护性。
多态
多态性是面向对象的核心特征之一。在面向对象语言中,多态性是指一个方法可以有多个实现的版本。对于一个方法的多种实现,程序运行时,系统会根据方法的参数或调用方法的对象自动选择一个合适的方法执行,不会产生混乱。
类的多态性表现为方法的多态性,讨论在不同层次的类中以及在同一个类中,多个同名方法之间的关系问题。方法的多态性主要表现在方法的重载和方法的覆盖。
方法的重载
重载是指同一个类中的多个方法可以同名但是参数列表不同。
方法重载的具体内容我已经在上一篇博客中介绍过,详见:点击打开。
方法的覆盖
覆盖是指子类重新定义了父类的同名方法。详见此篇博客上部分。
运行时多态
多态性有两种:编译时多态和运行时多态。
1. 编译时多态性
对于多个同名方法,如果在编译时就能确定执行同名方法的哪一个,则称为编译时多态。方法的重载就是编译时多态。
2. 运行时多态性
如果在编译时不能确定多个同名方法的哪一个,只能在运行的时候才能确定,就称为是运行时多态。
方法的覆盖表现两种多态性,当对象获得本类的实例时,是编译时多态,否则就是运行时多态。