接口和抽象类

本文介绍了Java中体现OOP抽象的两种形式——接口和抽象类。阐述了它们的抽象方法、成员变量和普通成员方法的特点,对比了抽象类与普通类、接口与抽象类的区别,包括能否实例化、方法实现、关键字使用等方面,为Java开发提供参考。

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

转载注明:https://blog.youkuaiyun.com/starbxx/article/details/95316647

在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。
1.抽象类:

[public] abstract class ClassName { 
    abstract void fun(); 
} 

(1)抽象方法:抽象类定义为“包含抽象方法的类”,即包含抽象方法的类一定是抽象类,但是抽象类不一定包含抽象方法(咬文嚼字)。抽象方法和抽象类前面加abstract修饰符。

(2)成员变量:抽象类同样可以拥有成员变量。

(3)普通的成员方法:抽象类同样可以拥有普通的成员方法,并且实现。

2.接口

[public] interface InterfaceName { 

} 

(1)抽象方法:接口包含抽象方法。

(2)成员变量:接口中的变量会被隐式地指定为public static final变量(并且只能是public static final变量,用private修饰会报编译错误)。

(3)普通的成员方法JDK8之前,接口中的方法必须都是抽象方法,JDK8 之后,接口也可以拥有默认的方法实现,这是因为不支持默认方法的接口的维护成本太高,如果想给一个接口添加一个新的方法,那么需要修改所有实现了该接口的类。

3.抽象类和普通类的区别
(1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。

(2)抽象类不能用来创建对象,不能实例化;

(3)如果一个类继承于一个抽象类,则子类必须实现父类的所有抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。

4.接口和抽象类的区别

接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制。

相同点
(1)都不能被实例化。

(2)接口的实现类或抽象类的子类都只有实现了接口或抽象类中的方法后才能实例化。

不同点:
(1)接口只有定义,不能有方法的实现,而抽象类可以有定义与实现,方法可在抽象类中实现(JDK8之前)。接口和抽象类都可以有方法的定义(JDK8之后)。

(2)实现接口的关键字为implements,继承抽象类的关键字为extends。一个类可以实现多个接口,但一个类只能继承一个抽象类。所以,使用接口可以间接地实现多重继承。

(3)接口成员变量默认为public static final,必须赋初值,不能被修改;其所有的成员方法都是public、abstract的。抽象类中成员变量默认default,可在子类中被重新定义,也可被重新赋值;抽象方法被abstract修饰,不能被private、static、synchronized和native等修饰,必须以分号结尾,不带花括号。

(4)接口强调特定功能的实现,而抽象类强调所属关系

(5)接口被用于常用的功能,便于日后维护和添加删除,而抽象类更倾向于充当公共类的角色,不适用于日后重新对立面的代码修改。功能需要累积时用抽象类,不需要累积时用接口。

内容概要:本文详细介绍了如何利用Simulink进行自动代码生成,在STM32平台上实现带57次谐波抑制功能的霍尔场定向控制(FOC)。首先,文章讲解了所需的软件环境准备,包括MATLAB/Simulink及其硬件支持包的安装。接着,阐述了构建永磁同步电机(PMSM)霍尔FOC控制模型的具体步骤,涵盖电机模型、坐标变换模块(如ClarkPark变换)、PI调节器、SVPWM模块以及用于抑制特定谐波的陷波器的设计。随后,描述了硬件目标配置、代码生成过程中的注意事项,以及生成后的C代码结构。此外,还讨论了霍尔传感器的位置估算、谐波补偿器的实现细节、ADC配置技巧、PWM死区时间换相逻辑的优化。最后,分享了一些实用的工程集成经验,并推荐了几篇有助于深入了解相关技术优化控制效果的研究论文。 适合人群:从事电机控制系统开发的技术人员,尤其是那些希望掌握基于Simulink的自动代码生成技术,以提高开发效率控制精度的专业人士。 使用场景及目标:适用于需要精确控制永磁同步电机的应用场合,特别是在面对高次谐波干扰导致的电流波形失真问题时。通过采用文中提供的解决方案,可以显著改善系统的稳定性性能,降低噪声水平,提升用户体验。 其他说明:文中不仅提供了详细的理论解释技术指导,还包括了许多实践经验教训,如霍尔传感器处理、谐波抑制策略的选择、代码生成配置等方面的实际案例。这对于初学者来说是非常宝贵的参考资料。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值