抽象类abstract 和 接口Interface 的区别?

本文探讨了Java中的抽象类和接口的区别。抽象类主要用于做基础类,有抽象方法但也可包含具体方法和成员变量,不能实例化。接口则是一个抽象方法的集合,用于描述行为规范,支持多继承,实现接口的类必须实现所有接口方法。抽象类有构造方法,用于子类初始化。接口与抽象类的主要区别在于接口不能包含实例变量和非抽象方法,且支持多继承。
摘要由CSDN通过智能技术生成

1.为什么需要抽象类abstract?

在Java语言中, abstract class interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力

抽象类是对类的抽象,是一种模板设计;接口是行为的抽象,是一种行为的规范。

抽象类是用来捕捉子类的通用特性的;接口是抽象方法的集合。

抽象类主要用于当做基础类使用,即基类(抽象类 用于被继承的子类使用的)。如果想拥有一些方法,并且这些方法有默认实现,那么使用抽象类。

接口主要用于模块与模块之间的调用。主要用接口来实现多继承,因为Java不支持类的多继承,只能用接口。

通常 某类 没有实例对象,但我们有时需要某类的引用  指向 它的子类实例(单单只需某类的引用(用作于基类或父类),并不需要其实例化)。

抽象类abstract

含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。

含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。

格式:

        抽象类:修饰符 abstract class 类名{}

        抽象方法:修饰符 abstract 返回值类型 方法名(参数列表){方法体;}

特点:

        1)抽象类不一定有抽象方法,但是有抽象方法的类一定是抽象类

        2)抽象类不可以实例化(不能用new关键字创建抽象类实例)

        3)抽象类的子类,可以是抽象类,也可以是具体类。如果子类是具体类,需要重写抽象类里面所有抽象方法

组成:

        1)成员变量:可以是变量,可以是常量

        2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值