Java 面向对象 抽象类与接口
2021/12/25 11:37:10
本文主要是介绍Java 面向对象 抽象类与接口,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在类的继承中,如果一个个新的子类被定义,子类变得越来越具体,父类变得更加一般和通用,类的设计应该保证父子类能够共享特征,有时将父类设计得非常抽象,使得父类没有具体的实现,这样的类叫做抽象类;一般当我们设计一个类,不需要创建此类的实例时,可以考虑将该类设置成抽象类,让其子类实现这个类的抽象方法。
abstract
关键字用于修饰类和方法:
1)抽象类
抽象类是一个受限制的类,不能用于创建对象(要访问它,它必须从另一个类继承)。
2)抽象方法
抽象方法只能在抽象类中使用,并且没有实现。 由子类实现抽象方法(从继承)
抽象类可以同时具有抽象方法和常规方法:
abstract class Animal { public abstract void eat(); public void sleep() { System.out.println("Zzz"); } }
从上面的示例中,无法创建Animal类的对象:
Animal myObj = new Animal(); 要访问抽象类,它必须从另一个类继承。使用extends关键字从类继承。
接口
接口也是抽象的,抽象的原因与抽象类的原因类似。但用处不同,接口一般用于定义类的统一行为,而抽象类是“继承”。
类重写一个接口中的所有抽象方法称为接口的实现。
接口解决的问题:JAVA不直接支持多继承,但支持多实现。
接口体中包含常量定义和方法声明,不允许对方法进行定义。
接口可以说是完全抽象的抽象类。
子类需要覆盖接口中的所有的抽象方法才能实例化,否则它是一个抽象类。
如果一个类实现了一个接口,该类必须对接口中声明的方法进行定义。实现方法时方法的名字、返回类型、参数个数及参数类型必须与接口声明的一致。
接口中,方法的修饰符默认是public abstract;接口中的常量的修饰符默认是public static final;所以子类中必须使用public来修饰定义的方法。
接口的定义格式:interfacd A{
public static final int size=100;
public abbstract void talk();
}
接口的实现: interfacd A{
public static final int size=100;
public abbstract void talk();
}
class B implements A{
//实现A中的抽象方式
如:
package 接口; interface A{ public static final int size=100; public abstract void talk(); // public abstract void eat(); } class B implements A{ //实现A中的抽象方法 public void talk() { System.out.println("B talk"); } } public class Demo { public static void main(String[] args) { new B().talk(); } }
抽象类与接口的异同:
- 相同:
- 都是抽象的
- 都不能被实例化
- 都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不提供具体的实现。
- 差异:
- 接口是完全抽象
- 概念设计区别:
- 抽象类是可以有非抽象方法的,而接口是完全抽象的,其实可以这样理解他们的区别:A,B都是一个抽象类,但它们由于是“父类”,所以一般来说都是有一些具体属性的,可以说抽象类是一个父类的抽象化,但它离不开父类与子类的关系;但接口定义的是行为,它并没有强的父子类关系,它只是完全抽象的定义了一些行为作为标准,就像工厂里的元件的各种标准。
- 而接口中的变量和方法的修饰符都显示出接口是一个“开放的固定的行为标准
这篇关于Java 面向对象 抽象类与接口的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求