interface接口和abstract抽象类的区别和联系

本文深入探讨了Java编程中的抽象类与接口的概念,详细解释了它们的特点、使用场景及区别,并通过具体示例帮助读者更好地理解面向对象编程的原则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java编程是面向对象的编程,将不同的模块抽象成一个个对象。一般将对象抽象成抽象层和实现层,抽象层主要由接口和抽象类实现,这样能够提高程序的复用率,增加程序的可维护性,可扩展性。所以面向对象的编程又可以称为是面向接口的编程,面向抽象的编程。接口和抽象类都是抽象的类,熟悉两者之间的区别和联系,能够在合适的时候灵活的运用

一)抽象类

抽象类是使用abstract关键字修饰的类,未使用abstract 关键字修饰的类一般称作实体类。下面是一个抽象类的例子:

   public abstract class A{
            private int para;
            public A(int para){
               this.para=para;
               }
            public void entityMetnod(){
               System.out.println("this is a entity method from abstract"); }
            public abstract void abstractMethod();

}

public abstract void abstractMethod();这个是一个抽象方法的声明,抽象方法在返回类型前用abstract关键字修饰的方法;不含
abstract关键字的方法是实体方法。一个抽象类中类可以包含任意个(0个、1个或多个)抽象方法。

注意:抽象类严禁直接创建该类的对象

强制子类覆盖抽象方法

二)接口
接口用interface关键字来修饰,是一种复合数据类型,而不是类的类型。Java 语言的数据类型分为两大类:基本数据类型和复合数
接口就是复合数据类型的一种,复合类型还有数组、类,如下是一个接口
 
         
  public interface B{
            public static int para=0;
            public void interfaceMethod();

}


注意:1)接口中的方法一定是抽象的,abstract可以省略;

    2)变量和方法必需是public类型,变量必需初始化,是静态的;

    3)接口中不能有构造函数,这是接口与类的最大的区别;

    4)接口中不能有实体方法

    5)接口可以多继承接口 public interface C extends interfaceB,interfaceC,...{},类只能继承一个实体类

三)抽象类和接口的共同点

 1)都不能用自身创建对象实例:

   A a = new A(); B a = new B(); 都是不允许的

 2)都可以声明对象,但是都只能使用子类的构造方法进行创建。例如:

  public BImpl implements B{
        
public void interfaceMethod(){}

    public BImpl(){}

  }

      B a = newBImpl(); 

   3)抽象类和接口内部都可以包含抽象方法。 

四)抽象类和接口的区别

 1)抽象类可以继承类,用关键字extends;接口不可以继承类,只能继承接口;

 2)抽象类是被继承(extends)的,接口是被实现(implements)的

 3)抽象类一个类,可以有构造函数、实体方法、私有属性、抽象方法;接口不是类,只能有抽象方法和公有常量属性,不能有实体方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值