3:抽象类 abstract
抽象方法:一个方法没有方法体 ,只有方法的返回值类型、方法名(参数列表)
方法没有具体的实现,这样的方法必须声明为抽象方法
抽象类:抽象类用在软件需求分析阶段 与概要设计阶段,用来数据的建模,流程的设置
抽象类中未必有抽象方法,含抽象方法的类必须声明是抽象类
抽象类中可以有成员变量 普通方法 抽象方法 常量 构造器
抽象类不能被实例化 new 抽象类()
抽象类是用来被继承的,当一个类继承的是一个抽象类的时候,这个类就必须重写抽象类中的抽象方法
或者这个类继续定义为抽象类
抽象类与子类存在
instanceof
关系
4: 接口 interface 特殊的抽象类
接口中只能有常量与抽象方法 ,没有变量和构造方法,就算不定义成抽象的也会默认定义为抽象的常量和方法
默认都是public abstract
接口是一种规范,是用来被实现的,implements
接口可以多实现,用来弥补java中单继承存在的缺陷
一个类如果实现了多个接口,那么这个类必须实现这些接口中全部的抽象方法
类实现接口可以不存在任何关系,是一种规范而已,如鸟 石头 飞机 都实现飞行接口
接口与接口之间可以多继承,但是不能实现接口。因为接口的成员方法都具有抽象属性,
不具有方法体,所以接口无法实现接口。
一个类只能单继承,但可以多实现
一个接口如果继承了多个接口,这个接口中就拥有了多个接口的抽象方法,