Java基础12 面向对象~多态(1)

  1. 将子类的对象赋值给父类的引用

对象调用父类的方法

public class HumanTest{

public static void main(String[] args) {

Human man1 = new Chinese();

man1.eat();

Human man2 = new American();

man2.eat();

Human man3 = new Indian();

man3.eat();

}

}

  1. 将方法的参数定义为父类类型,传入子类对象

public static void service(Human man){

man.eat();

}

public static void main(String[] args) {

service(new Chinese());

service(new American());

service(new Indian());

}

  1. 将方法的返回类型定义为父类类型,返回子类对象

public static Human getHuman(int type){

Human man = null;

switch(type){

case 1:

man = new Chinese();

break;

case 2:

man = new American();

break;

case 3:

man = new Indian();

break;

}

return man;

}

public static void main(String[] args) {

Human man1 = getHuman(1);

Human man2 = getHuman(2);

Human man3 = getHuman(3);

man1.eat();

man2.eat();

man3.eat();

}

在这里插入图片描述

向上转型和向下转型

=======================================================================

向上转型

子类对象转为父类类型

Human person = new Chinese();

向下转型

父类对象转为子类类型

如:子类类型 对象= (子类类型)父类对象;

向下转型的前提是:先向上转型

//向上转型

Human person = new Chinese();

//向下转型

Chinese ch = (Chinese)(person);

ch.eat();

注意:向下转型存在类型转换错误的风险

Human person = new Chinese();

//出现 ClassCastException 类型转换异常

Indian ch = (Indian)(person);

instanceof 运算符

============================================================================

instanceof 作用:判断一个对象是否是某个类型的

对象 instanceof 类型

返回boolean类型结果

假设给中国人添加打麻将方法,美国人添加打仗方法,印度人添加瑜伽方法,想要调用人对象的这种特定方法,就需要使用instanceof判断对象类型,再进行向下转型实现。

//创建对象

Human person = new Indian();

ch.eat();

//判断人的类型

if(person instanceof Chinese){

//向下转型

Chinese ch = (Chinese)(person);

ch.majiang();

}else if(person instanceof American){

American ch = (American)(person);

ch.fight();

}else if(person instanceof Indian){

Indian ch = (Indian)(person);

ch.yoja();

}else{

System.out.println(“我不认识你!”);

}

最后

即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!

我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!
一共有20个知识点专题,分别是:

Dubbo面试专题

JVM面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Java并发面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Kafka面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MongDB面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MyBatis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MySQL面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Netty面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

RabbitMQ面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Redis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Spring Cloud面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

SpringBoot面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

zookeeper面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

常见面试算法题汇总专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

计算机网络基础专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

设计模式专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

-PIpNLnWG-1714349674762)]

SpringBoot面试专题

[外链图片转存中…(img-u4mgOxkL-1714349674762)]

zookeeper面试专题

[外链图片转存中…(img-RjpmzRp6-1714349674762)]

常见面试算法题汇总专题

[外链图片转存中…(img-OSGFEkdV-1714349674763)]

计算机网络基础专题

[外链图片转存中…(img-ePJauig1-1714349674763)]

设计模式专题

[外链图片转存中…(img-vmaTCi71-1714349674763)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值