JAVA第一阶段(下)— 09
2021/4/24 20:28:46
本文主要是介绍JAVA第一阶段(下)— 09,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
JAVA第一阶段(下)
文章目录
- JAVA第一阶段(下)
- 一、多态
- 1.1 意义
- 1.2 向上造型
- 1.3 强制类型转换
- 1.4 Instanceof
- 1.5 扩展-常见面试题
一、多态
1.1 意义
多态的意义主要有两点
1)同一类型的引用指向不同的对象时,具有不同的实现----所有抽象方法都是多态的
----行为的多态:cut()、step()、getImage()…
2)同一个对象被造型为不同的类型时,具有不同的功能----所有对象都是多态的
----对象的多态:我、水…
1.2 向上造型
向上造型也可以叫做自动类型转换,有如下特点:
1)超类型的引用指向派生类的对象
2)能造型成为的数据类型有: 超类+所实现的接口
3)能点出来什么,看引用的类型
1.3 强制类型转换
成功的条件只有如下两种:
1)引用所指向的对象,就是该类型
2)引用所指向的对象,实现了该接口或继承了该类
if(f instanceof EnemyScore){ EnemyScore es = (EnemyScore)f; score += es.getScore(); } if(f instanceof EnemyAward){ EnemyAward ea = (EnemyAward)f; int type = ea.getAwardType(); switch(type){ case 0: hero.addFire(); break; case 1: hero.addLife(); break; }
1.4 Instanceof
强转时若不符合如上条件,则发生ClassCastException类型转换异常
建议:在强转之前先通过instanceof来判断引用指向的对象是否是该类型
//多态的演示 public class MultiTypeDemo { public static void main(String[] args) { Aoo o = new Boo(); //向上造型 Boo o1 = (Boo)o; //引用o所指向的对象就是Boo类型 Inter o2 = (Inter)o; //引用o所指向的对象实现了Inter接口 //Coo o3 = (Coo)o; //运行时会发生ClassCastException类型转换异常 if(o instanceof Coo){ //false Coo o3 = (Coo)o; }else{ System.out.println("o不是Coo类型"); } } } interface Inter{ } class Aoo{ } class Boo extends Aoo implements Inter{ } class Coo extends Aoo{ }
1.5 扩展-常见面试题
1)问:switch分支语句可以作用于哪些数据类型上?
答:byte,short,int,char,枚举,String(JDK 1.7开始支持)
2)问:重写与重载的区别?
答:重写(override):发生在父子类中,方法名相同,参数列表相同
重载(overload):发生在同一类中,方法名相同,参数列表不同
3)问:简述public、private、protected以及默认权限的访问范围?
答:public:公开的,任何类
private:私有的,本类
protected:受保护的,本类、派生类、同包类
默认的:什么也不写,本类、同包类
4)问:简述java的八种基本数据类型
答:byte字节型(1),short短整型(2),int整型(4),long长整型(8)
float单精度浮点数(4),double双精度浮点数(8)
boolean布尔型(1)
char字符型(2)
这篇关于JAVA第一阶段(下)— 09的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-27本地多文件上传的简单教程
- 2024-11-27低代码开发:初学者的简单教程
- 2024-11-27如何轻松掌握拖动排序功能
- 2024-11-27JWT入门教程:从零开始理解与实现
- 2024-11-27安能物流 All in TiDB 背后的故事与成果
- 2024-11-27低代码开发入门教程:轻松上手指南
- 2024-11-27如何轻松入门低代码应用开发
- 2024-11-27ESLint开发入门教程:从零开始使用ESLint
- 2024-11-27Npm 发布和配置入门指南
- 2024-11-27低代码应用课程:新手入门指南