抽象类和接口

本文详细介绍了Java中的抽象类和接口,包括它们的定义、特点及相同点和不同点。抽象类是子类的公共属性集合,用于类型隐藏,不能直接实例化。接口则是一系列方法的声明,主要用于多继承,实现类必须实现接口的所有抽象方法。两者都不可实例化,但可以作为引用类型使用。
摘要由CSDN通过智能技术生成

抽象类和接口
一、抽象类
1、定义Java语言中,用abstract 关键字来修饰一个类时,这个类叫作抽象类。抽象类是它的所有子类的公共属性的集合,是包含一个或多个抽象方法的类。抽象类可以看作是对类的进一步抽象。在面向对象领域,抽象类主要用来进行类型隐藏。
2、抽象类的特点
1)抽象类,其修饰符必须为public或者protected,不能是private,因为创建抽象类,就是要被其他类继承,用private修饰了,则不能被子类继承,子类便无法实现该方法。
2)抽象类不能用来创建对象,即抽象类不能被直接实例化,要通过其普通子类进行实例化。
3)如果一个普通子类继承于一个抽象父类,则该类一定要重写实现该父类的抽象方法。如果该子类仍然是一个抽象类,这也是允许的,就不必重写实现该父类的抽象方法,但必须用abstract修饰。
4)抽象级别:抽象类是对整体类的抽象,包含属性和方法。
5)实现类的范围不同:抽象类,其实是从子类中提取共性部分,然后抽象出来,反之,子类继承该父类就可以了,也就是说里面的抽象方法一般来自同一个类别。
6)设计方式不同:抽象类是要先有子类,然后才抽象出父类,是一种从下往上的构建法则。
二、接口
1、定义 Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
2、接口的特点
1)接口中可以包含变量和方法,变量被隐式指定为 public static final,方法被隐式指定为 public abstract(JDK 1.8 之前)。
2)接口支持多继承,即一个接口可以继承(extends)多个接口,间接解决了 Java 中类不能多继承的问题。
3)一个类可以同时实现多个接口,一个类实现某个接口则必须实现该接口中的抽象方法,否则该类必须被定义为抽象类。
三、相同点
1.抽象类和接口都不能被实例化,但可以定义抽象类和接口类型的引用。

2.一个类如果继承了抽象类和接口,必须要对其中的抽象方法全部实现。(接口中方法默认的是public abstract修饰的)否则该类仍然需要被声明为抽象类。
四、不同点
1、抽象类可以有构造方法,抽象方法和具体方法。

接口不能有构造方法,而且其中的方法全部都是抽象方法。(接口中方法默认的是public abstract修饰的)

2、抽象类中的成员可以使private、默认、protected、public的。

接口中的成员全部都是public的。

3、抽象类可以 定义成员变量。

4、接口中定义的成员变量其实都是常量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值