• java学习记录抽象类和接口


    抽象类

           在java中abstract就是抽象的意思,可以修饰类、成员方法

            abstract修饰类、这个类就是抽象类;修饰方法,方法就是抽象方法

    修饰符  abstract class 类名{

           

                修饰符 abstract 返回值类型 方法名称 (形参列表);

                    

    }

     public abstract class Animal{

     public abstract void run();

    }

    注意事项

          1 抽象方法只有方法签名,不能声明方法体

          2 一个类中如果定义了抽象方法,这个类必须声明为抽象类 否则就会报错

          3 一个类继承类了抽象类,n那么这个类必须重写完抽象类的全部抽象方法,否则这个类也要声明为抽象类

         4 抽象类作为父类被继承的

    抽象的使用场景

          抽象类可以理解成不完整的设计图,一般作为父类,让子类来继承

          当父类知道子类一定要完成某些行为 但是子类的该行为的实现又不同 ,于是该父类就把该行为定义为抽象方法的形式,具体实现由子类实现,此时这个类就可以声明为抽象类

    特这和注意事项

           类有的成员(成员变量、方法、构造器、)抽象类全部具有

           抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类

           一个类继承类了抽象类,n那么这个类必须重写完抽象类的全部抽象方法,否则这个类也要声明为抽象类

            不能用abstract 修饰变量、代码块、构造器

              最重要特征 得到了抽象方法就是去类创建对象的能力(不能实例化)

             不能和final同时使用 两者定义相反  abstract 修饰类 就是让子类继承重写但是final 修饰的不能被继承 , 在方法 上面abstract 就是让方法被子类重写 final 不让子类重写

             使用抽象的好处

                    提高了代码的复用性

                     l模板方法已经定义了通用结构,模板方法不能确定的部分定义成抽象方法,交给子类实现,因此,使用者只需要关心自己需要实现的功能即可

    接口

                 接口的定义和特点

                格式如下

                                 接口使用关键字interface 来定义

                       public interface 接口名{

                             // 常量

                           //   抽象方法

    }

                    JDK8 之前接口中只能是抽象方法和常量,没有其他

                    接口不能实例化、

                     接口作用的成员都是public 修饰的 系统默认

                     接口是一种规范    

    接口的用法

                    接口是用来被类实现(implements)的,实现接口的类称为实现类,可以理解为子类

                     修饰符 class 实现类 implements 接口1、接口2、.....{

    }实现的关键字 implements

                    接口可以被类单实现 也可以被类多实现

    接口的注意事项

                   一个类实现接口 必须重写完接口的全部抽象方法,否则这个类就需要定义为抽象类

    基本小结

            类和类的关系:单继承

            类和接口关系:多实现

            接口和接口关系: 多继承  一个接口可以同时继承多个接口

    接口多继承的作用

              规范合并 整合多个接口为同一个接口 方便子类实现

    使用接口的注意事项

             接口不能创建对象

              一个类实现对各接口 多个接口的规范不能冲突

              一个类继承了父类 同时实现了接口 父类中和接口中有同名方法 默认用父类的

             一个类实现了多个接口 多个接口中存在同名的默认方法 不可以不冲突 该类重写该方法即可

             一个接口继承多个接口 是没有问题的,如果多个接口中存在规范冲突则不能被多继承

  • 相关阅读:
    AWS认证SAA-C03每日一题
    数仓:数仓建设中的数据建模和日志体系
    传承汉字,发扬光大!让《米小圈动画汉字》也出一份力吧!
    .NET周刊【3月第1期 2024-03-03】
    Vue中父组件和子组件的关系
    MyEclipse报错javax/persistence/EntityManagerFactory
    040:vue项目中 transition 动画实现推拉门效果
    CSS基础入门
    智能售后工单系统是什么?智能工单系统有什么用?
    BGP高级特性——ORF、GTSM、4字节AS号
  • 原文地址:https://blog.csdn.net/qq_52153640/article/details/126272373