文章目录:
  1. 继承
    1. 特性
    2. 继承关键字
  2. 重写与重载
    1. 重写
    2. 重载
  3. 多态
    1. 虚函数
  4. 抽象
    1. 抽象类
    2. 抽象方法
  5. 封装
  6. 接口
    1. 接口的实现
    2. 接口的继承

继承

继承使用关键词extends,继承格式为class Son extends Father{}
Java不支持多继承(一个类同时继承自好几个类),支持多重继承、不同类继承同一个类。

特性

重载

或者可以叫做重构,指的是在一个类里面,方法名字相同,参数必须不同的方法。返回类型可以相同。不同的重载方法可以独立存在。
重载类型的参数列表必须不同,且一定可以区分,比如取不同的参数变量名、字符串等容易混淆的方式是不合法的。
异常和访问权限都可以任意修改。

区别点重载方法重写方法
参数列表必须修改一定不能修改
返回类型可以修改一定不能修改
异常可以修改可以减少或删除,一定不能抛出新的或者更广的异常
访问可以修改一定不能做更严格的限制(可以降低限制)

多态

多态指的是对于同一个接口(方法),使用不同的实例(子类)会执行不同的操作。
多态存在的三个必要条件:

抽象

抽象类

抽象类是一种不能实例化对象的类,类的其他功能依旧存在。在Java里面使用abstract class来定义抽象类。
抽象类不能用来实例化对象,所以抽象类必须要被继承才能被使用。父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。继承的时候可以通过super()构造父抽象方法,同样可以调用和获取三个变量。

抽象方法

抽象方法同样使用abstract关键字定义,在定义它的类里面不实现它,这个方法的具体是先由它的子类确定。在父类里面只包含一个方法名,没有方法体,方法名后面直接跟一个分号就行。如:

public abstract class People{
    public abstract double study();
}

有抽象方法的类必须满足:

封装

封装的意思是指把类里面的部分方法的实现细节(如内部的变量)部分包装、隐藏起来,防止类的代码和数据被外部类定义的代码访问,要访问内部的代码和数据必须通过严格的接口控制。
封装的实现首先需要对于变量添加可见性,限制对于类的属性的访问,一般使用private进行限制。比如把变量设置为私有的,只有本类能进行访问,然后添加公共方法提供访问和赋值方法,这两种方法称为gettersetter方法。

接口

接口是Java里面的一个抽象类型,是抽象方法的集合,使用interface来声明。
定义类的时候可以通过继承接口,来继承接口的抽象方法。接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。
接口有以下的特性:

接口的继承

一个接口能继承另一个接口,和类之间的继承方式比较相似。接口的继承使用extends关键字,子接口继承父接口的方法。
接口中支持多继承,比如public interface ALH extends Animal, People
标记接口: 最常用的标记接口是没有包含任何方法的接口。标记接口是没有任何方法和属性的接口.它仅仅表明它的类属于一个特定的类型,供其他代码来测试允许做一些事情。
标记接口作用:简单形象的说就是给某个对象打个标(盖个戳),使对象拥有某个或某些特权。