Java(final,抽象类,抽象方法、接口)

2021-01-26

一、final关键字

常量的分类:

  a、字面量常量:"hello"  10 false;
  b、自定义常量:使用final修饰的常量:final int num =10;

概念

  2、final代表是最终的,不可改变的

作用

  3、final修饰变量:变量值不能够二次赋值
        修饰成员变量:必须要进行赋值;
        修饰局部变量:可以不用赋初始值,但是用的时候得赋值;

final注意事项

  4、final修饰方法:不能被子类重写;
  5、final修饰类:不能被继承;
  6、使用:
        写工具类,方便直接使用static修饰,直接用类名调用
        不想让别人轻易修改你的代码,使用final修饰

二、抽象类

概念

  1、通过关键字abstract修饰的类,通常是代表是抽象父类,让子类方便使用父类
  2、是一个抽象的概念,没有具体的实现意义,让子类去实现
  3、使用abstract修饰的类,叫做抽象类
  4、使用abstract修饰的方法,叫做抽象方法

特点

  1、不能被实例化,也就是不能被new,只能使用多态
  2、抽象类可以有普通方法也可以有抽象方法
  3、抽象方法没有方法体
  4、有抽象方法,那么这个类就一定是抽象类
  5、子类继承抽象父类,子类必须全部实现父类抽象方法
  6、如果子类不想全部重写父类方法,子类可以提升为抽象类;  

使用

  7、没有抽象构造方法,没有抽象静态方法;
  通过多态来使用

三、抽象方法和普通方法的区别

  1、抽象方法没有方法体,普通方法有方法体
  2、抽象方法定义在抽象类中,普通方法定义在普通类中,也可以定义在抽象类中
  3、抽象方法必须在子类中全部重写,普通方法没有要求

四、接口(interface)

接口概念

  是一个规范性的代表,是一个灵活的接口,是一个定义功能的接口
  比抽象类还要抽象的父类,是一个无私的父类,只专注提供功能给子类实现

接口的特点

  1、方法全是抽象方法(public abstact),没有其他方法了
  2、属性全是静态常量(public static final)
  3、定义接口类,使用interface关键字
  4、在子类中实现父类的功能,使用implements关键字
  5、接口类中只有常量和抽象方法,所以没有构造方法没有普通方法
  6、接口是多实现,多继承的
        接口可以继承多个接口
        子类可以实现多个接口
        子类只能单根继承父类
  7、不能实例化

接口使用

  利用多态

使用步骤

  分析那些类是接口类(定义功能)(USB接口)
  哪些类是子类(鼠标,键盘,U盘,风扇)
  使用关键字implements实现父类接口

接口的好处

  1、提高了代码的可扩性
  2、优化了代码的灵活性
  3、提高了代码的可重用性和可维护性
  4、面向接口编程使得开发效率更高,满足开发原则

五、接口类和抽象类的区别

  1、相同:
        a、接口类和抽象类都是不能实例化;
        b、接口类和抽象类都是作为一个服务子类的父类,专门让子类去实现的
  2、不同:
        接口类:里面全是静态常量和抽象方法
        抽象类:里面可以有抽象方法和普通方法
 
        接口类:可以多继承(接口继承多个接口),多实现(子类实现多个接口)
        抽象类:只能单继承
 
        接口:更加灵活
        抽象类:有局限性,单继承
posted @ 2021-01-27 09:27  一名初学者  阅读(305)  评论(0)    收藏  举报