封装(Encapsulation)
封装就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
理解:客观事物对应于人,程序把人抽象成类,例如下代码
class Person1{
private String name;
public void speak(){
System.out.println("我的名字是:" + name);
}
}
从上面代码可以知道,一个类包含了数据以及操作这些数据的代码,这就是封装体现。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。
继承(Inheritance)
概念
- 继承是指这样一种能力:它可以使用现有类的功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
作用
实现代码的复用
进一步理解
- 子类与父类的关系并不是日常生活中的父子关系,子类与父类而是一种特殊化与一般化的关系,继承的过程,就是从一般到特殊的过程。
- 继承概念的实现方式有二类:实现继承与接口继承。实现继承是指直接使用基类的属性和方法而无需额外编码的能力;接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
多态(Polymorphism)
理解
简单的说,就是用父类的引用指向子类的对象。多态可以理解成“一个接口,多种实现”,就是同一种事物表现出的多种形态。
多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。
应用场景
可以用在方法的参数中和方法的返回类型中。
比如在Object类中的equals(Object obj)方法中,参数是个Object
类型的参数.因为Object是Java中所有类的基类.,传入参数的时候,可以传入任何一个类的对象,这就是多态的应用。
小结
封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。 多态把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。