final+abstract抽象类+interface接口详解

目录

fanal关键字

abstract-抽象类

interface--接口


fanal关键字

        -最终  不可变

场景

        final修饰成员属性或变量-常量

        final修饰方法-最终方法

        final修饰类-最终类

常量

        引用不可变得量

                基本数据类型 --数据值不可变

                引用数据类型 --地址值不可变  但是地址指向的元素值是可变的

格式

        final  数据类型   常量名   =   初始化值;

        常量名:

                所有单词都大写   单词间通过_分割

注意

        final修饰的成员属性  要么在定义时直接给出常量值  要么在构造代码块中给出常量值

final修饰方法

        方法不能被重写

final修饰类

        final 修饰类,则该类不能被继承

static+final    静态常量

        格式

                权限修饰符    static   final   数据类型    常量名  =   常量值;

                例:    public static final int VALUE = 3;

        特点:

                类名直接调用静态常量

                引用不可变

        注意:

                静态常量要么在定义时直接给常量值,要么在静态代码块中完成赋值

abstract-抽象类

abstract关键字

应用场景

        修饰类--抽象类

        修饰方法--抽象方法

引出

        Animal  父类

                call方法

        Dog

                重写call方法

        Cat

                重写call方法

        父类中的call方法没必要  因为每个子类都会重写

        可以将父类中call方法设置成抽象方法,Animal类设置为抽象类

抽象类

        权限修饰符   abstract  class  类名();

抽象方法

        权限修饰符  abstract  返回值数据类型  方法名(参数列表);

注意

        1*抽象方法不能有方法体

        空的{}也不行

        抽象方法后必须加分号表示方法定义结束

        2*含有抽象方法的类必须是抽象类

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

        3*类中可以包含:  成员属性  成员方法  构造代码块  构造方法  抽象方法

        4*抽象类的使用

                1/ 子类继承抽象类,必须实现(重写)抽象类中的所有的抽象方法

                2/  子类继承抽象类,将子类也设置为抽象类  可以实现抽象

        5*抽象类不能直接创建对象

        6*抽象类支持向上造型

        7*abstract关键字不能和private,static,final关键字一起使用修饰方法

        abstract不能和final一起修饰类

意义

        通过抽象方法来定义规则  要求继承抽象类的子类必须实现规则

案例:

        教练/运动员

interface--接口

定义接口

        权限修饰符 interface  接口名{}

        interface 创建接口的关键字

        接口名的命名方式参考类名

接口中可以定义的内容

        公共的静态常量

                在定义时可以省略public static  final 关键字  底层会自动补充

        抽象方法

                在定义时可省略public  abstract 底层自动补充

接口的使用

        接口不能被创建对象

        接口名.静态常量名--获取静态常量值

       1*具体类实现接口,并实现接口中的所有抽象方法:

                格式:

                        权限修饰符   class   类名   implements 接口名{}

                        implements  关键字  指定类实现的接口

        2*抽象类实现接口,可以实现接口中的抽象方法,也可以不实现抽象方法

类可以继承父类的同时实现接口

        格式:

                权限修饰符  class   类名  extends  父类类名   implements  接口名1,接口2....{}

        一个类可以实现多个接口

接口支持向上造型

        将实现类的对象赋值给接口类型的引用

        编译看左边,运行看右边

类与接口关系

        类和类:

                继承,--单继承

        类和接口

                实现--一个类可以实现多个接口

        接口和接口

                继承 -- 一个接口可以继承多个接口

接口的作用

        约束

        模板

抽象类和接口的区别

        1*抽象类可以定义抽象方法以及其他内容

           接口只能定义静态常量和抽象方法

        2*一个类只能继承一个抽象类

           一个类可以实现多个接口

        3*抽象类--继承结构

                

           接口---功能扩展

        4*作用

                抽象类--规定  必须实现某些功能  

                接口  --  约束,模板

                

内部类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小乔同学Online

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值