Java抽象类和接口

抽象类

一、定义

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

二、特征

  • 抽象类不能实例化,即不能使用new关键字来实例化对象。
  • 抽象类和抽象方法必须用关键字abstract修饰。
  • 抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类。
  • 抽象类的子类是一个抽象类或者是一个具体类,但这个类必须重写抽象类中的所有抽象方法。(多态)
  • 抽象类中的抽象方法只有方法体,没有具体实现。

接口

一、定义

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

二、特点

  • 一个接口不能实现(implement)另一个接口,但可以继承多个其他接口。
  • Java接口可以有public、static和final属性,成员方法默认都是public ,abstract 类型的,不能含有static方法。
  • Java接口的方法只能是抽象的和公开的,Java接口不能有构造器,不能实例化。

三、格式

interface  A{
    void funA();
}
abstract class B implements A{
  //abstract funA();
    abstract void funB();
    void fun(){
    }
}
class C extends B{

    @Override
    public void funA() {
        
    }

    @Override
    void funB() {

    }
}

抽象类与接口的区别

抽象类接口
修饰词使用abstract修饰使用interface修饰
实现子类使用extends关键字来继承抽象类类使用关键字implements来实现接口
构造器可以有构造器不能有构造器
访问修饰符抽象方法可以有public、protected和default这些修饰符接口的默认修饰符是public不可以使用其它修饰符
继承抽象类可以继承一个类和实现多个接口接口可以继承一个或多个其他接口
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值