[ java基础 ] 多态.接口

本文探讨final关键字在Java中的应用,包括类的继承限制、方法重写、变量赋值,以及接口中的抽象方法、默认方法和静态方法。重点讲解final在局部变量、成员变量和多态中的作用,以及如何避免ClassCastException。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

final关键字

final: 不可改变。可以用于修饰类、方法和变量。
类:被修饰的类,不能被继承。
方法:被修饰的方法,不能被重写。
变量:被修饰的变量,不能被重新赋值。

final class 类名 {
}

修饰符 final 返回值类型 方法名(参数列表){
//方法体
}

修饰变量

  1. 局部变量——基本类型

基本类型的局部变量,被final修饰后,只能赋值一次,不能再更改。

  1. 局部变量——引用类型
    引用类型的局部变量,被final修饰后,只能指向一个对象,地址不能再更改。但是不影响对象内部的成
    员变量值的修改,

  2. 成员变量
    成员变量涉及到初始化的问题,初始化方式有两种,只能二选一:

显示初始化;
构造方法初始化。

接口

接口的内部主要就是封装了方法,包含,自定义常量,抽象方法(JDK 7及以前),默认方法和静态方法
(JDK 8),私有方法(JDK 9)。

接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法
(JDK 8),私有方法(JDK 9)。

引用数据类型:数组,类,接口。

接口的使用,它不能创建对象,但是可以被实现( implements ,类似于被继承)。一个实现接口的类
(可以看做是接口的子类),需要实现接口中所有的抽象方法,创建该类对象,就可以调用方法了,否
则它必须是一个抽象类。

自定义常量

[public] [static] [final] 数据类型 常量名 = 初始化值;

抽象方法

[public] [abstract] 返回值类型 方法名();

默认方法

[public] default 返回值类型 方法名 () {}

静态方法

[public] static 返回值类型 方法名 () {}

私有方法(JDK9.0)

private 返回值类型 方法名 () {}

private static 返回值类型 方法名 () {}

实现的概述

类与接口的关系为实现关系,即类实现接口,该类可以称为接口的实现类,也可以称为接口的子类。实
现的动作类似继承,格式相仿,只是关键字不同,实现使用 implements 关键字。

非抽象子类实现接口:

  1. 必须重写接口中所有抽象方法。
  2. 继承了接口的默认方法,即可以直接调用,也可以重写。

接口的多实现
之前学过,在继承体系中,一个类只能继承一个父类。而对于接口而言,一个类是可以实现多个接口
的,这叫做接口的多实现。并且,一个类能继承一个父类,同时实现多个接口。

优先级的问题
当一个类,既继承一个父类,又实现若干个接口时,父类中的成员方法与接口中的默认方法重名,子类
就近选择执行父类的成员方法。

接口的多继承【了解】
一个接口能继承另一个或者多个接口,这和类之间的继承比较相似。接口的继承使用 extends 关键
字,子接口继承父接口的方法。如果父接口中的默认方法有重名的,那么子接口需要重写一次。

多态

多态是继封装、继承之后,面向对象的第三大特性。

定义
多态: 是指同一行为,具有多个不同表现形式。

父类类型 变量名 = new 子类对象;
变量名.方法名();

父类引用指向子类对象【格式体现】

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,执行的
是子类重写后方法。

多态的好处
实际开发的过程中,父类类型作为方法形式参数,传递子类对象给方法,进行方法的调用,更能体现出
多态的扩展性与便利。

引用类型转换

向上转型:多态本身是子类类型向父类类型向上转换的过程,这个过程是默认的。

父类类型 变量名 = new 子类类型();

向下转型:父类类型向子类类型向下转换的过程,这个过程是强制的。

子类类型 变量名 = (子类类型) 父类变量名;

案例:狗拿耗子

为了避免ClassCastException的发生,Java提供了 instanceof 关键字,给引用变量做类型的校验,格
式如下:

变量名 instanceof 数据类型
如果变量属于该数据类型,返回true。
如果变量不属于该数据类型,返回false。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值