文章内容仅代表个人理解,如有错误欢迎到评论区指点,文章内容仅供参考——
本篇对java中的"抽象类和接口"进行详细的讲解
本期会分成一下三部分进行讲解:
- 抽象类的创建、使用、注意事项。
- 接口的创建、使用、和类的区别。
- 抽象类和接口的意义。
目录:
一、抽象类
二、接口
抽象类
定义:抽象类是一种不能被实例化的类,用于声明方法但不实现它们。在Java中,通过abstract
关键字定义抽象类,它可以包含抽象方法和具体方法。
1.创建一个抽象类
在class前面写入abstract关键字即可;
2.添加一些方法和一些常量
3.使用这个抽象类
这个抽象类是不能被实例化的
我们用一个子类来继承这个抽象类
用extends继承没忘了吧,哈哈到这里是个重点哦,你看这个编译失败了,为啥呢?
答:“在Java中子类继承的抽象类后,子类必须重写抽象类中的所有抽象方法”
我们再向抽象类中添加一个抽象方法,看看是不是必须要实现全部的抽象方法才行!
哈哈记住哦,必须重写抽象类中的抽象方法!
4.添加构造方法
子类要在自己的构造方法中帮助父类实现构造;
5.总结:抽象类的意义
-
抽象类定义了一种类型:
- 抽象类本身不能被实例化,但可以被子类继承。
- 它提供了一种模板或者规范,子类需要实现其中的抽象方法,从而完善具体的行为。
-
提供了代码重用的机制:
- 抽象类可以包含普通方法和具体实现,子类可以直接继承这些方法。
- 可以通过抽象类来定义一些通用的行为,避免重复编写代码。
-
用于类的层级结构设计:
- 抽象类通常用于表示一类对象的共同特征,它们的子类通过继承和实现抽象方法来具体化这些特征。
-
实现了部分的多态性:
- 抽象类可以包含抽象方法,子类必须实现这些方法,从而允许不同子类表现出不同的行为。
接口
定义: 接口是一种抽象的数据类型,它定义了一组方法但没有实现这些方法。在Java中,接口通过interface
关键字来定义,所有方法默认是public abstract
的,并且所有变量字段默认是public static final
的。
1.创建一个接口
也可以
2.添加一些常量和方法
接口中只能添加常量否则
那为什么会有定义中说的默认权限嗯?我们加上看看呢!
我们发现加上后的权限全部都是黑色的,说明接口中的方法和变量变量字段的权限是有默认值的。
3.使用这个接口
4.接口的扩展
接口继承其他接口的抽象方法,实现接口的扩展,红色问题部分是刚才使用接口的类还没有重写sleep方法。
这样就好啦!
5.一个类只能继承一个,那一个类可以实现几个接口呢?
我们再加几个接口,再实现一下
哈哈都可以实现耶!
6.总结:接口
-
定义了一种契约:
- 接口定义了一组方法的签名(方法名、参数和返回类型),但没有具体实现。
- 它描述了对象应该具备的行为,而不关心具体实现方式。
-
实现了多重继承:
- 类可以实现多个接口,从而达到多重继承的效果。
- 这种灵活性使得接口在组合不同行为时特别有用。
-
解耦了实现和接口:
- 接口允许代码依赖于抽象类型,而不是具体实现类,从而增强了代码的灵活性和可维护性。
- 使用接口可以使代码更容易扩展和修改,因为接口定义了规范。
-
用于事件驱动和回调机制:
- 在事件处理和回调中,接口可以定义处理事件或回调的方法,具体实现可以由不同的类来完成。
为什么要使用抽象类和接口?
- 提高代码的可读性和可维护性:抽象类和接口可以帮助我们更清晰地组织和设计代码结构,使其更易于理解和维护。
- 实现代码重用:抽象类和接口可以在不同的类中实现相同或相似的行为,从而避免重复编写代码,提高了代码的复用性。
- 支持多态性:抽象类和接口是实现多态的重要工具,通过它们可以实现基于不同对象的统一调用接口方法,增加了程序的灵活性和可扩展性。
- 降低耦合度:接口将实现与接口分离,提供了更松散的耦合关系,使得代码模块化程度更高,便于单元测试和修改。
好啦看到这里想必您对Java有了新的认知和了解,如果对您有帮助的话请帮我点个一件三连!谢谢!谢谢!谢谢!
我只是个初学者——