面向对象三大特征
面向对象的语言的三大特征
- 封装
- 继承
- 多态
封装
封装的含义
- 封:把东西隐藏起来,java中把成员变量隐藏起来,通过方法提供访问成员变量的访问方式。(set和get方法)
- 装:给外界提供统一的访问方式。 (成员变量和方法都放在类里。)‘
java封装的实现
- 把所有成员变量都定义成 private类型 (只有该类中的能直接访问成员变量)
- 实现成员变量的set和get方法。
所有一句话,就是把所有内容都是通过方法来访问。不用关心内部实现和定义。
封装的好处:
- 成员变量更安全
- 提供统一的接口,开发便捷
继承
继承:子类继承父类的方法和变量、同时扩展自己方法和变量。
- 父类/基类/超类:已经存在类
- 子类/派生类 :要新创建的类
继承的好处
- 在程序中可以复用定好的类,减少开发周期,提高代码复用性,维护性和扩展性
- 让类和类产生关系、为多态打基础
实现继承
使用extends关键字<modifier> class <name> [extends <superclass> ] { <declaration> * }
继承的使用
- 继承了父类中非私有的成员变量和一般方法,直接使用
- 对父类中私有的成员变量通过父类中的方法去访问
- 子类继承父类中没有参数的构造方法,在子类创建时自动调用父类中的无参构造方法。
系统自动在子类中的构造方法中添加一个super();
继承的限制
- java的继承是单继承(所有子类都只有一个父类)
java是多层继承,孙子也会继承爷爷的特性。 - 不能继承父类中的私有成员变量和方法。
- 继承要求父类中必须要有无参的构造方法。
- java的继承是单继承(所有子类都只有一个父类)
访问控制 private >default(不写)>protected>public
- private : 只能当前类的内部访问
- default : 当前类的内部和同一个包中
- protected:当前类的内部和同一个包中,不同包中的子类可以访问父类。
- public :全局
重写(方法覆盖) (override)
重写:在子类中实现一个和父类中完全同名同类型的方法
重写的限制:子类中重写的方法,不能比父类中的被重写的方法访问权限更严格
重写了父类的方法,父类中被重写的方法消失了么?
没有消失(java中的继承是一种不会减少的继承)
super关键字
- super:可以访问父类中的方法和变量。
- super使用
- 父类中非私有的成员变量 super.成员变量名
- 父类中非私有的一般方法 super.方法名();
- 父类中的构造方法 super();
重载(overload)
- 重载: 在同一个类中,定义方法名相同,参数不同的方法。
一般方法重载
构造方法重载重载:实现了函数名的复用
重载的不同:参数类型不同或参数个数不同
int add(int a,int b) int add3(int