抽象
抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处.
继承
继承使用extends关键字来实现,被继承的类成为父类,实现继承的类被称为子类。
子类和父类的关系就比如现实生活中儿子与父亲的关系。
子类继承父类所有的属性和方法,子类是父类的扩展,并在父类的基础上添加或修改属性和方法。
封装
封装是指将对象的状态信息隐藏在对象内部,不允许外部的程序直接访问对象内部的信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。
封装的好处很多:
- 隐藏类的实现细节
- 让使用者只能通过预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对属性的不合理访问。
- 可进行数据检查,从而有利于保证对象信息的完整性。
- 便于修改,提高代码的可维护性。
多态
在面向对象语言中,多态性是指一个方法可以有多个实现的版本。
对于一个方法的多种实现,程序运行时,系统会根据方法的参数或调用方法的对象自动选择一个合适的方法执行,不会产生混乱。
方法的多态性主要表现在方法的重载和方法的覆盖以及运行时多态。
- 方法的重载:
重载是指同一个类中方法名相同,但是参数列表不同。 - 方法的覆盖:
覆盖是指子类重新定义了父类的同名方法。 - 运行时多态
多态性指的是程序中定义的引用变量所指向的具体类型和通过该引用变量调用的方法在编程时并不确定,而是在程序运行期间才确定.
也就是一个引用变量倒底会指向那个类的实例,调用那个类实现的方法,必须由程序运行期间才能确定.
这样不用修改程序,就可以让引用变量绑定到各种不同类的实现上,从而引用调用的方法也随之改变.
也就是不修改程序代码,就可以改变程序运行时所绑定的具体代码.