[Java基础复习] 抽象类 和 接口

本文深入解析了抽象类和接口的概念,阐述了它们在面向对象编程中的作用与区别。介绍了抽象类的创建与使用,包括抽象方法的定义,以及子类如何实现这些方法。同时,探讨了接口的特性,如多重继承和所有方法默认为抽象方法的特点。

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

抽象类

抽象类是一种特殊类,是因为考虑到有些方法是无法在子类统一而创建的。比如人类,有一个方法是说话。但是医生和学生说的话肯定不同,但是考虑到父类都是人类,那这时候抽象化即可。同时记住一点,抽象类不能实例化。(因为抽象类必须有抽象方法,而抽象方法都是没实现的方法,因此不能实例化。但是抽象类也可以有具体的方法,这种方法子类可以直接调用。比如喝水,每个人类都需要喝水,那么可以直接给子类使用。)

写法
public/ protected abstract class xxx{
至少一个抽象方法;
}

抽象方法写法public abstract void method();
如果子类继承抽象类,同时不是抽象类,那么必须实现父类所有的抽象方法!

抽象类常见问题
1.抽象类不能被final申明。因为final类必须不能被子类继承。
2.抽象类能有构造方法。因为抽象类子类和普通类实力化过程是一样的,都是先去父类调用构造方法(super),然后再回来调用子类的构造方法

抽象类和普通类的区别
1.抽象类只能用public/ protected修饰,因为其他权限子类无法继承,所以会报错
2.抽象类虽然自己不能被实例化,但是子类被实例化的时候他也会被实例化进堆中
3.抽象类子类必须实现所有抽象类的方法。(构造方法不必都实现,毕竟从逻辑上来说可能是另外的子类才需要这个构造方法)

在这里插入图片描述

接口

接口是一种特殊类,他要求里面的所有方法都是抽象类,所有属性都是全局常量(即final static)。但是接口允许多重继承。

接口格式为public interface class xxx{…}, 继承为public (interface) class extends 父类, implements 接口1,2,3…

因为接口是这么设计的,所以接口方法如果不加public和abstract也可以,在编译的时候系统会自动加上。同理也不需要用final static int a = 10;这样写,直接int a = 10;即可,因为编译的时候系统会自动加上。但是必须给变量初始化赋值,是因为全局变量是这么要求的。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值