• 【JAVA】抽象类和接口类


    抽象类和抽象方法

    关键字:abstract
    用abstract修饰的类:抽象类
    a)抽象类不能实例化对象,即不能new对象
    b)抽象类中一定有构造器,方便子类实例化时调用
    c)提供抽象类的子类,让子类去实例化

    abstract修饰方法:抽象方法
    a)拥有抽象方法的类一定是抽象类,而抽象类不一定有抽象方法;
    b)抽象方法只有方法声明,没有方法体;public abstract void test();
    c)如果子类重写了父类中的所有抽象方法,那么该子类可以实例化;
    如果子类没有重写父类中的所有抽象方法,那么该子类也是抽象类,需要用abtract修饰

    注意:
    a)abstract不能用来修饰 私有(private)方法、静态(static)方法、final、
    b)abstract不能用来修饰属性、构造器

    抽象类创建匿名对象
    static class main()
    {
    //非匿名类,匿名对象
    function(new person);
    //非匿名类,非匿名对象
    person p=new person();
    function§;

    public void function(person per)
    {
    		
    }
    
    • 1
    • 2
    • 3
    • 4

    }

    abstract class person()
    {
    private void try()
    {
    }
    }

    接口

    1、接口的定义
    将各种实例对象的共性特点抽取出来,用接口去修饰,可以实现JAVA中不支持多继承的效果。比如人的共有特点都是有能吃饭,能跑,那学生可以跑,老师可以跑。接口也可以理解为是一种规则“如果你是要XXXXXX那你必须能XXXXXX。”

    继承是一个是不是的关系,继承是一个能不能的关系。

    如何使用接口

    关键字:implement 接口类

    接口类的使用和普通类的使用类似,都需要定义公共属性
    注意:
    1、接口类不能定义构造器,意味着接口不可以实例化(可以理解为接只是一个实例对象的特性,是一个抽象的东西),而抽象类可以定义构造器。其实例化是通过子类重写接口类中的方法。
    2、接口通过让类去实现(implements)的方式来使用。
    3、实现类覆盖(可重写可不重写但是实现类中一定要有接口类中的方法)接口中的所有抽象方法,则实现类就可以实例化。如果实现类没有覆盖接口中所有的抽象方法,那么该实现类仍然是一个抽象类。
    4、接口与接口之间可以继承,而且可以多继承。

    创建接口匿名实现类的非匿名对象
    USB(接口) phone=new USB(){
    重写接口USB中的方法;
    }
    com.test(phone);
    创建接口匿名实现类的匿名对象
    com.test(new USB(){
    重写接口中USB方法;
    }
    )

    抽象类和接口类的异同点
    同:都不能直接实例化,需要实现类(子类)去重写抽象类/接口类中的所有方法,才可以实例化。
    异:
    接口类:可以多继承,多实现,接口类与接口类之间也可以多继承。
    抽象类:只能够单继承。

  • 相关阅读:
    2024年腾讯云2核4G5M轻量服务器性能评测,多维度测试
    java计算机毕业设计ssm驾校预约考试管理系统a3cf7(附源码、数据库)
    java是干什么的
    有效的括号-力扣
    业务中我们如何更新缓存?Redis
    git下载安装配置及Git在Gitee上拉取和上传代码教程
    【MySQL基本查询(下)】
    【配置多个ssh keys】在同一台电脑上,同时配置多个ssh keys (私钥和公钥),以操作不同的Git托管平台仓库
    vue3+elementPlus:el-table-column表格列动态设置单元格颜色
    三个工厂模式(通俗易懂)
  • 原文地址:https://blog.csdn.net/KJJfighting/article/details/126284995