封装
把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。
通俗的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。
通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。但是如果⼀个类没有提供给外界访问的⽅法,那么这个类也没有什么意义了。
我们来看一个常见的 类,比如:Student
public class Student implements Serializable {
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
将对象中的成员变量进行私有化,外部程序是无法访问的。对外提供了访问的方式,就是set和get方法。
而对于这样一个实体对象,外部程序只有赋值和获取值的权限,是无法对内部进行修改
继承
继承 就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下:
class 父类 {
}
class 子类 extends 父类 {
}
继承概念的实现方式有二类:实现继承与接口继承。
实现继承是指直接使用基类的属性和方法而无需额外编码的能力
接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力
一般我们继承基本类和抽象类用 extends 关键字,实现接口类的继承用 implements 关键字。
注意点:
通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。
继承的过程,就是从一般到特殊的过程。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。
子类可以拥有父类的属性和方法。
子类可以拥有自己的属性和方法, 即⼦类可以对⽗类进⾏扩展。
子类可以重写覆盖父类的方法。
JAVA 只支持单继承,即一个子类只允许有一个父类,但是可以实现多级继承,及子类拥有唯一的父类,而父类还可以再继承。
使用implements
关键字可以变相的使java具有多继承的特性
,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。
# implements 关键字
public interface A {
pu