三大特征:继承、封装【隐藏】、多态
一、继承
1.子类继承父类,可以得到父类的全部属性和方法(除了父类的构造方法)。
2.Java中的类只有单继承,没有多继承。
3.Java中的多继承,可以通过接口来实现(interface)
4.如果定义一个类时,没有调用extends,则它的父类是java.lang.Object
5.不同的叫法:超类、父类、基类、派生类。
第一好处:继承的本质在于抽象。类是对对象的抽象,继承是对某一批类的抽象。
第二好处:为了提高代码的复用性。
extends的意思是“扩展”。子类是父类的扩展。
【注】JAVA中类只有单继承没有多继承! 接口可以多继承!
二、封装或者隐藏
为什么需要封装?封装的作用和含义?
1.我要玩手机,只需要按一下Home键显示屏幕,没有必要了解手机的内部结构。
2.隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。
我们程序设计要追求“高内聚,低耦合”。
高内聚:就是类的内部数据操作细节自己完成,不允许外部干涉;
低耦合:仅暴露少量的方法给外部使用;
编程中封装的具体意义:
1.便于调用者调用;
2.良好的封装,便于修改内部代码,提高可维护性。
3.良好的封装,可进行数据完整性检测,保证数据的有效性。
利用访问控制符实现封装
访问控制符 | 同一个类 | 同一个包中 | 子类 | 所有类 |
private | * | |||
default【空白】 | * | * | ||
protected | * | * | * | |
public | * | * | * | * |
1.属性一般使用private(除非本属性确定会让子类继承并使用)提供相应的get/set方法来访问相关属性,这些方法通常是public,从而提供对属性的读写操作。【【【注意:boolean变量的get方法是:is开头】】】
三、多态
多态性是OOP中的一个重要特性,主要用来实现动态联编的,换句话说,就是程序的最终状态只有在执行过程中才被决定在编译期间就决定了。这对于大型系统来说能提高系统的灵活性和扩展性。
编译与运行;编译对应说,运行对应做;
多态的三个必要条件:
1.要有继承。
2.要有方法的重写。
3.父类引用指向子类对象。【在不是用父类引用指向子类对象的情况下,可以使用重载但必须给每个子类手动编写重载方法 public static void name([class name] [value name]){... ...}】
多态简单来讲就是方法的多态!!!