final关键字、抽象类、接口

final关键字

        1:public :访问权限最大

        2:static :内存中只有一份

        3:final  :是一个常量

        4:常量名大写,多个单词用下划线(_)分隔

        5:必须初赋值,赋值后,不能重新赋值。

成员变量,将不能在发生改变,那么它将变成常量,称为符号常量

命名规则 : 符号常量的名字,每一个单词全部大写,单词与单词直接通过_进行连接

被final修饰的常量,必须要赋默认值

final修饰方法

        该方法是最终方法,不能被子类重写

final修饰类

        final修饰类 无法被继承,不会有子类

抽象类

        用abstract关键字修饰的方法,称为抽象方法。

        抽象方法的特点:只有方法的声明,没有方法体。

        抽象方法的作用:被子类重写,为子类规定了方法的调用格式,具体的操作内容等待子类去完成。

抽象类

用abstract修饰的类(只要包含抽象方法的类必须是抽象类)

抽象类的特点: 抽象类不能被实例化抽象类的唯一用途就是被子类继承。

抽象类中可以包含非抽象方法。

抽象类的作用

抽象方法 在方法定义的时候在 返回值类型 前面添加 abstract 关键字可以把方法体删除

当我们一个类中有 抽象方法的时候,我们的这个类就变成了 抽象类

因为抽象方法只能存在抽象类中,抽象类中可以没有抽象方法

抽象类中可以有普通方法

抽象方法存在的目的: 就是被子类进行重写

当我们的子类 继承了 抽象父类,一定要重写父类中所有的抽象方法,没有重写完依旧是抽象类

抽象类的其他细节

抽象类与我们普通类的区别

普通类可以直接创建对象, 抽象类不能直接创建对象

抽象类中有普通类中所有内容,只多了一个抽象方法

一个类中 能否有构造方法与能否创建对象没有关系,与这个类有没有成员变量有关,有成员变量,就有构造方法

没有成员变量,就没有构造

final  和  abstract  一定不能同时修饰。因为:抽象类的作用就是被继承,而final修饰的类不能被继承

接口

1、接口不能被实例化

2、接口用来被类实现

3、接口中可以定义属性和方法:

          接口中的所有属性 默认的修饰符是  public static final,所以定义时必须赋值。

          接口中的所有方法 默认的修饰符是  public abstract

          JDK8开始,接口中可以包含默认方法和静态方法

默认方法:使用 default 修饰,不可省略,供子类调用或者子类重写。

静态方法:使用 static 修饰,供接口直接调用。

          JDK9开始,接口中可以包含私有方法

              私有方法:使用 private 修饰,供接口中的默认方法或者静态方法调用。

接口没有构造方法

接口中可以定义属性和方法

接口的属性是 常量,不是变量

命名方式 要符合全大写,单词与单词之间通过_进行连接

没有变量 也就意味着没有构造方法

接口不能创建对象 既不能实例化

实现接口

当一个类实现某个接口时,类中要对接口中的所有抽象方法进行实现(添加方法体,完成方法)

定义的类 要想与 接口产生关系,我们需要通过一个关键字

implements 实现的意思

一个类只能继承一个父类,但能同时实现多个接口。 单继承多实现

格式:

        class 类名 extends 父类名 implements 接口1,接口2,……{

               //类的成员

        }

类和接口直接的关系,叫做实现,这种实现可以多实现

需要将多个接口中的所有抽象方法进行重写

当我们的父类中和接口中有相同的方法,会优先于父类进行使用

接口可以实现多层继承

接口可以多继承

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

曲靖花式通幽处

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

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

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

打赏作者

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

抵扣说明:

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

余额充值