抽象类和接口的区别

本文对比了Java中的抽象类和接口,阐述了它们如何定义方法规范,以及在继承和实现上的区别。重点讲解了抽象方法、抽象类的强制规范作用、接口的抽象性、单继承与多实现的特性,并举例说明如何在类中应用这些概念。

抽象类和接口都是用来规范一个类里面需要实现哪些方法

抽象类里面的抽象方法,只有方法名,没有方法体,继承抽象类的类必须重写这个抽象类的所有抽象方法

接口里面也只有抽象方法,实现这个接口的类需要重写这些抽象方法

由于java里面是单继承,所以1个类最多继承1个类,但是1个类可以实现多个接口,所以实现接口这种方式更常用

 抽象类:

abstract class Person 
{
    public abstract void run();
    public abstract String getName();
}

方法:

interface Person 
{
    void run();
    String getName();
}

1.抽象方法

正常来说是这样的:

class   Person
{
    public void run()
    {

    }
}

类里面的方法必须有方法体,不加方法体(即直接public void run();如下图)是会报错的

将这个方法设为抽象方法就可以不需要方法体:

2.抽象类:

 当一个类中含有一个抽象方法的时候,必须将这个类也声名为抽象类

如果你把一个类定义为了抽象类,就会强迫它的子类重写抽象类里面的抽象方法,因此抽象方法相当于定义了一种规范

抽象类中可以有非抽象方法

例如:Person类这个抽象类中定义了抽象方法run(),那么,在子类Student中,就必须重写run()方法

abstract class Person
{
    public abstract void run();
}

class Student extends Person 
{
    @Override
    public void run() 
    {
        System.out.println("Student.run");
    }
}

3.接口 

接口就是用来规范一个类的,规定一个类中必须包含哪些函数(也就是哪些方法)

因为一个类实现某个接口的时候,需要重写这个接口中所有的方法

(1)抽象类可以修改为接口:

abstract class Person 
{
    public abstract void run();
    public abstract String getName();
}

 将这个抽象类修改为接口:

interface Person 
{
    void run();
    String getName();
}

(2)接口是比抽象类还要抽象,因为抽象类中还可以有属性,但是接口中连属性都没有

(3)接口中所有的方法默认都是public abstract(),所以这两个修饰符不需要写出来(写不写效果都一样)

(4)一个类实现某个接口的时候,需要重写这个接口中所有的方法:

但是一个类继承某个抽象类的时候,只需要重写这个抽象类中的所有抽象方法,非抽象方法不需要重写

class Student implements Person 
{
    private String name;

    public Student(String name) 
    {
        this.name = name;
    }

    @Override
    public void run() 
    {
        System.out.println(this.name + " run");
    }

    @Override
    public String getName() 
    {
        return this.name;
    }
}

(5)一个类只能继承一个类,不能多继承,继承多个类,但是一个类可以实现多个接口

(6)一个interface可以继承自另一个interface,相当于扩展了接口的方法:

interface Hello 
{
    void hello();
}

interface Person extends Hello 
{
    void run();
    String getName();
}

Person接口继承自Hello接口,因此,Person接口现在实际上有3个抽象方法 

内容概要:本文围绕RK3588芯片与AP6256 WiFi/蓝牙模块的搭配使用,重点探讨了SDIO WiFi驱动在功率控制吞吐量方面的优化方法。文章详细介绍了RK3588与AP6256的硬件特性及通信机制,深入分析了AP6256的功率管理原理及其在恒压、恒流模式下的工作方式,并指出当前驱动中存在的功耗高、稳定性差场景适应性不足等问题。针对这些问题,提出了从硬件电路设计(如电源芯片与去耦电容选型、布线优化)软件算法(如引入机器学习进行功率预测、自适应功率调整)两方面进行优化的策略。在吞吐量优化方面,分析了信号干扰、SDIO时钟频率驱动协议等因素的影响,提出了优化天线布局、合理调整时钟频率及升级驱动协议等解决方案。通过搭建测试环境并使用iperf功耗仪进行实测,验证了优化后待机功耗降低达33.3%,吞吐量提升超40%。最后总结了优化过程中的经验教训,并展望了未来基于AI、WiFi7多链路聚合等技术的进一步优化方向。; 适合人群:从事嵌入式系统开发、无线通信驱动优化及相关领域的工程师技术人员,具备一定硬件设计与Linux驱动开发经验的研发人员; 使用场景及目标:①解决RK3588平台下AP6256模块功耗过高、传输速率低的问题;②提升智能安防、工业控制、边缘计算等设备的无线通信性能与能效表现;③为类似SoC与无线模块的驱动优化提供可复用的技术路径与实践参考; 阅读建议:建议结合RK3588开发板AP6256模块进行实际部署与测试,重点关注硬件选型、驱动算法实现与参数调优环节,配合功率分析仪网络测试工具验证优化效果,并注意新旧驱动协议的兼容性问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值