Java面向对象设计主要有三大特征:封装性、继承性和多态性
一 封装性
1.1 概念:它是将类的一些敏感信息隐藏在类的类部,不让外界直接访问到,但是可以通过getter/setter方法间接访问。
1.2 目的:我们可以并且有可能在方法中,添加自己的限制,保证数据的有效性;从某种程度上说,封装也提高了代码的健壮性、安全性。
1.3 实现步骤:所有的成员变量全部私有化,格式 :private 数据类型 变量名 ,提供访问成员变量的getter/setter方法。
二 继承性
2.1 概念:子类通过一种方式来接受父类所有的公有的,受保护的成员变量和成员方法。
2.2 目的:增强了代码的复用性,提高了代码的质量。
2.3 实现步骤:使用extends关键词,标识子类继承父类 ,格式:public class 子类名 extends 父类名
2.4 注意事项: ⑴子类可以在继承父类方法的基础上,重写父类的方法,在具体执行是执行子类的方法;
⑵子类可以定义自己的属性,方法,这是代码扩展性的一种体现;
⑶Java中所有的类,如果没有显示的定义继承自谁,默认都是从Object继承而来的;
⑷(特别注意)Java中,每个类都只能继承一个类————Java的单继承机制。
三 多态性
3.1 概念:程序在运行的过程中,同一种类型在不同的条件下表现不同的结果,这种不定状态的表现形式,可以称为多态。
3.2 分类:ⅰ.设计时多态:方法重载实现的多态
⑴方法重载—————定义的所有方法都是声明在【同一个类】中的;
⑵方法重载的实现————相同的方法名称(不同的参数){},例如:public void person(){ . . . }
和public void person(String name){ ........}
ⅱ .运行时多态:方法【重写】实现的多态
⑴方法重写/覆盖————定义的方法肯定是在子类中覆盖父类的方法,方法出现在两个类中。
⑵方法重写的实现————子类继承父类,然后在子类中重新定衣服类方法的实现。
例如:父类 public class Pet{}
子类 public class Cat{} 子类继承父类 Cat extends Pet
Pet cat = new Cat(); 父类的引用指向子类的对象,表示运行时多态。