Java-面向对象-枚举、抽象类、接口

Java-面向对象-枚举、抽象类、接口,第1张

Java-面向对象-枚举、抽象类、接口 枚举


    概念:
        枚举是java中的一种特殊类型
        枚举作用:是为了做信息的标志和信息的分类
    定义枚举类的格式:
        修饰符  enum 枚举名称{
    第一行都是罗列枚举类实例的名称。
}
    反编译(javap.class文件)后观察枚举的特征:
        //季节
public enum Season {
   
    SPRING , SUMMER,  AUTUMN , WINTER;
}
            public final class Season extends java.lang.Enum {
  public static final Season SPRING;
  public static final Season SUMMER;
  public static final Season AUTUMN;
  public static final Season WINTER;
  public static Season[] values();
  public static Season valueOf(java.lang.String);
  static {};
}
    枚举的特征:
        枚举类都继承了枚举类型:java.lang.Enum
        枚举都是最终类,不可被继承。
        构造器都是私有的,枚举不能对外创建对象。
        枚举类的第一行默认都是罗列枚举对象的名称的。
        枚举类相当于是多类模式。
    选择常量做信息标志和分类:
        虽然可以实现可读性,但是入参值不受约束,代码相对不够严谨。(项目中用得多,简单;特殊场景使用)
    枚举做信息标志和分类:
        入参约束严谨,代码优雅,是最好的信息分类技术,建议使用!

抽象类


        概念:
            某个父类知道其所有子类要完成某功能,但是每个子类完成情况都不一样,父类就只定义该功能的基本要求;具体实现由子类完成,这个类就可以是一个抽象类,抽象类其实就是一种不完全的设计图。
            抽象类必须全部使用abstract修饰:修饰符 abstrsct class 类名
    抽象方法
        概念:
            就是抽象类中定义的,子类必须全部完成功能的基本要求。
            格式:修饰符 abstract 返回值类型  方法名称(形参列表);
            没有方法体,只有方法名,必须abstract修饰。
    抽象类的使用总结与注意事项
        抽象类用来被继承的,抽象方法是交给子类重写实现的。
        一个类如果继承了抽象类,那么这个类必须重写完成抽象类的全部抽象方法。
    抽象类的特征、注意事项小结
        特征:
            有得有失:得到了抽象方法,失去了创建对象的能力。
            抽象类为什么不能创建对象?
                类的成员(成员变量、方法、构造器)抽象类都具备
                抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
                一个类继承了抽象类必须重写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类
                不能用abstract修饰变量、代码块、构造器
            只有抽象类和抽象方法的概念,其他的都不谈抽象。
    final和abstract是什么关系?
        互斥关系
        abstract定义的抽象类作为模板让子类继承,final定义的类不能被继承。
        抽象方法定义通用功能让子类重写,final定义的方法子类不能重写。

接口


    接口的定义与特点
        接口的格式:
            接口用关键字interface来定义
public interface 接口名{
    //常量
    //抽象方法
}
        JDK8之前接口中只能是抽象方法和常量,没有其他成分了。
        接口不能实例化。
        接口中的成员都是public修饰的,写不写都是,因为规范的目的是为了公开化。
            常量:public static final String SCHOOL_NAME = "xx"
public static final可以省略不写,接口会默认加上。
            抽象方法:public abstract void run( );
可以直接写成(建议): void run( );
    接口的基本使用:被实现
        接口的用法:
            接口是用来被类实现(implements)的,实现接口的类称为实现类。实现类可以理解成所谓的子类。
            格式:
                修饰符 class 实现类 implements 接口1,接口2,接口3,...{

}

实现的关键字:implements
            从上面可以看出,接口可以被类单实现,也可以被多实现。
        接口实现的注意事项:
            一个类实现接口,必须重写完全部接口的全部抽象方法,否则这个类需要定义成抽象类。
    接口与接口的关系:多继承
        基本小结:
            类和类的关系:单继承。
            类和接口的关系:多实现。
            接口和接口的关系:多继承,一个接口可以同时继承多个接口。
        接口多继承的作用:
            规范合并,整合多个接口为同一个接口,便于子类实现。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5697777.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存