类和抽象类 异同点:
相同之处:
- 包含成员变量、局部变量、类变量
- 包含各类具体实现的方法
- 具有构造方法、可继承和被继承、可实例化接口
不同点:
- 类:
- 类可以被实例化
- 类没有抽象方法
- 子类可以任意重写父类方法
- 抽象类:
- 抽象类不能被实例化
- 有抽象方法,抽象方法没有主体、只有方法名,不能为静态
- 子类必须实现父类的抽象方法、否则子类也是抽象类
- 具有抽象方法的类必定是抽象类、抽象类可以没有抽象方法
接口和抽象类 异同点:
相同之处:
- 都不能直接被实例化,接口需要被实现、抽象类需要被继承
- 存在的意义在于声明一个行为,在目前阶段不能有具体实现(没有方法体),需要被下层实现
不同点:
-
接口:
- 接口:是一系列行为的集合
- 接口中定义变量需要用static final 进行修饰,且必须赋初值、不能被修改
- 接口没有构造方法,所有方法默认public abstract 修饰
- 接口可以==实现多继承==
- 接口中不能含有静态代码块以及静态方法(用 static 修饰的方法)
-
抽象类:
- 抽象类中的方法可以有方法体,就是能实现方法的具体功能
- 抽象类中的成员变量可以是各种类型的
- 抽象类是可以有静态代码块和静态方法
- 抽象类只能单继承