1、封装
好处:
隐藏实现细节,提供公共的访问方式
提高了代码的复用性
提高安全性。
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
将所有属性设置为私有.使用private关键字修饰属性
[private修饰的代码,只能在当前类中使用.]
根据需要,提供公共的访问方式:
对属性提供 setter和getter方法.
注意:设置/获得属性的值,不是必须使用setter/getter. 方法名称任意,只是传统都是使用
- public 公共的
允许所有的类访问该成员; - private 私有的
只允许该成员自身所属的类访问,不允许子类访问; - 默认的修饰符
允许定义它的类自身以及处于同一个包中的其它类访问(包括子类);不允许不同包中的子类访问; - protected 保护成员
保护成员,允许定义它的类自身以及处于同一个包中的其它类访问(包括子类);还允许不同包中的子类访问;
2、继承
1、子类只能继承父类的非私有属性和方法
2、子类新增的属性和方法父类无法使用
3、父类新增的属性和方法子类能否继承取决于访问权限
4、子类编写与父类相同属性时,子类属性覆盖继承自父类属性
5、子类编写与父类相同方法时,子类方法覆盖继承自父类方法(重写)
只支持单继承【一个孩子只能有一个父亲】,可以多层继承【继承可以传递】
3、多态
同种事物的多种形态
创建子类对象实现向上转型得到父类对象。
例如:猫可以是猫的类型。猫 m = new 猫();
同时猫也是动物的一种,也可以把猫称为动物。动物 d = new 猫();
多态编写:
- 子类继承父类,并重写父类的某些方法;
- 创建子类对象,向上转型为父类对象;
- 使用转型得到的父类对象,调用被重写的方法;
向上转型:将子类对象赋值给父类类型的变量,属于自动的。
格式: 父类类型 变量 = 子类对象;
向下转型:将父类对象赋值给子类类型的变量.[强制的]。
格式: 子类 变量 = (子类类名)父类对象;
向下转型的条件:
必须确定子类和父类的继承关系.
注意: 必须先向上转型[确定继承关系],然后才能向下转型
总结
封装、继承、多态是面向对象的重点,以后写程序都是以面向对象编程进行编写。