java接口和抽象类简介说明
下文笔者讲述java中接口和抽象类的简介说明,如下所示
接口和抽象类简介
在Java中 接口(Interface) 和 抽象类(Abstract Class) 都用于实现面向对象中的抽象机制和多态性 它们都支持定义未实现的方法,供子类或实现类完成具体逻辑
接口(Interface)
定义: 接口是一种 完全抽象类 只能包含常量和方法签名(Java 8后可有默认方法和静态方法) 特点: -所有方法默认是`public` -不允许构造函数(不能实例化) -可以被多个类实现(实现多重继承效果) -支持默认方法(default methods)和静态方法(static methods)例:
public interface Animal { void speak(); //抽象方法 default void breathe() { System.out.println("Breathing..."); } static void info() { System.out.println("This is an animal interface."); } }
抽象类(Abstract Class)
定义: 抽象类是一种 不完整的类 可以包含抽象方法(没有实现的方法) 和 具体方法(有实现的方法) 特点: -可以有构造函数 -可以包含成员变量(非final) -子类必须实现所有抽象方法,例:
除非子类也声明为abstract -类与类之间是单继承关系
public abstract class Vehicle { protected String brand; public Vehicle(String brand) { this.brand = brand; } public abstract void start(); // 抽象方法 public void stop() { System.out.println(brand + " stopped."); } }
接口vs抽象类对比
特性 | 接口(Interface) | 抽象类(Abstract Class) |
方法实现 | 默认方法、静态方法(Java 8+), 其他为抽象方法 | 可包含抽象方法和具体方法 |
成员变量 | 默认是 `public static final` | 可定义普通成员变量 | |
构造函数 | 没有 | 有 |
继承方式 | 多实现(implements) | 单继承(extends) |
访问权限 | 方法默认 `public` | 方法可以有不同访问修饰符 |
使用场景 | 行为规范、解耦、混合功能 | 共享代码和状态,设计基类 |
何时选择接口何时选择抽象类简介说明
-✅使用接口:
当你只需要定义行为规范,
不需要共享状态(字段),
并希望实现多重继承。 -✅使用抽象类:
当你需要共享代码或状态(字段),
并且子类具有“is-a”关系。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。