亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> java

Java中的接口与抽象类:有什么区别?

什么是接口?

接口是可用于实现类的蓝图。该接口不包含任何具体方法(具有代码的方法)。接口的所有方法都是抽象方法。

无法实例化接口。但是,可以实例化实现接口的类。接口从不包含实例变量,但它们可以包含公共静态最终变量(即常量类变量)

什么是抽象类?

声明中带有 abstract 关键字的类称为抽象类。抽象类应该至少有一个抽象方法。 ,即没有主体的方法。它可以有多种具体的方法。

抽象类允许您为具体类创建蓝图。但是继承类应该实现抽象方法。

抽象类不能被实例化。

使用接口的重要原因

使用抽象类的重要原因

接口对比。抽象类

抽象类允许您创建子类可以实现或覆盖的功能,而接口仅允许您声明功能但不能实现它。一个类只能扩展一个抽象类,而一个类可以实现多个接口。

参数 界面 抽象类
速度
多重继承 实现几个接口 只有一个抽象类
结构 抽象方法 抽象和具体的方法
什么时候使用 未来增强 避免独立
继承/实现 一个类可以实现多个接口 类只能继承一个抽象类
默认实现 在向接口添加新东西时,找到所有实现者并实现新定义的东西是一场噩梦。 如果是抽象类,您可以利用默认实现。
访问修饰符 接口没有访问修饰符。接口内定义的所有内容都假定为 public 修饰符。 抽象类可以有访问修饰符。
什么时候使用 当各种实现只共享方法签名时,最好使用接口。值类型的多态层次结构。 当同种的各种实现共享一个共同的行为时,应该使用它。
数据字段 接口不能包含数据字段。 类可以有数据字段。
多重继承默认 一个类可以实现许多接口。 一个类只继承一个抽象类。
实现 接口是抽象的,所以它不能提供任何代码。 抽象类可以提供完整的默认代码,应该重写。
访问修饰符的使用 您不能对方法、属性等使用访问修饰符。 您可以使用包含访问修饰符的抽象类。
用法 接口有助于定义类的外围能力。 一个抽象类定义了一个类的身份。
定义字段 不能定义字段 一个抽象类允许你定义字段和常量
继承 一个接口可以继承多个接口,但不能继承一个类。 一个抽象类可以继承一个类和多个接口。
构造函数或析构函数 接口不能声明构造函数或析构函数。 抽象类可以声明构造函数和析构函数。
扩展限制 它可以扩展任意数量的接口。 一次只能扩展一个类或一个抽象类。
抽象关键字 在抽象接口关键字中,对于将方法声明为抽象是可选的。 在抽象类中,abstract 关键字对于将方法声明为抽象是必需的。
类类型 一个接口只能有公共抽象方法。 一个抽象类有受保护的和公共的抽象方法。

Java 中接口和抽象类的示例代码

以下是用Java创建接口和抽象类的示例代码

接口语法

interface name{
//methods
}

Java 接口示例:

interface Pet {
    public void test();
}
class Dog implements Pet {
    public void test() {
        System.out.println("Interface Method Implemented");
    }
    public static void main(String args[]) {
        Pet p = new Dog();
        p.test();
    }
}

抽象类语法

abstract class name{
    // code
}

抽象类示例:

abstract class Shape {
    int b = 20;
    abstract public void calculateArea();
}

public class Rectangle extends Shape {
    public static void main(String args[]) {
        Rectangle obj = new Rectangle();
        obj.b = 200;
        obj.calculateArea();
    }
    public void calculateArea() {
        System.out.println("Area is " + (b * b));
    }
}

java

  1. 热塑性与热固性材料:有什么区别?
  2. 正手焊与反手焊:有什么区别?
  3. 钢铁与钢铁:有什么区别?
  4. 切割与线钉:有什么区别?
  5. 等离子与激光切割:有什么区别?
  6. 车床与铣削面:有什么区别?
  7. 铣削与磨削:有什么区别?
  8. Java 抽象类和抽象方法
  9. Java 接口
  10. Java - 抽象
  11. Java - 接口
  12. 直流电机与交流电机:有什么区别?