多态就是 可以把(dog类)对象放入(Animal类)的引用里面,
就是把子类放入父类引用,Animal a =new Dog();
通过这个引用a能调用eat()和sleep()方法,不能调用shout()方法,因为Animal类中没有调用shout(),
a.sleep()是会调用dog类中的sleep(),dog类中的sleep()重写了Animal类中的sleep,
所以a.sleep()找的就是dog类覆盖之后的sleep(). */
Animal a =new Dog();
a.eat();//This is a eat()
//a.shout();//不能调用shout方法,会报错,Animal类中没有调用shout方法;
a.sleep();//sleep 3 hours
/*类型转换
子类引用赋值给父类引用,可以直接赋值。
父类引用赋值给子类引用,必须_强制类型转换,
保证编译通过,但是运行时可能发生 类型转换异常。
*/
//(编译时不出错,运行时可能发生类型转换异常)
//这个强制类型转换其实是给编译器看的,使他不理会这个异常,
//因为Animal类中并不一定装的是这个dog对象。只是可能,
//如果换成Animal a =new Cat();则就会编译不报错运行报错类型转换异常
Dog d =(Dog)a;//引用间的赋值;需要强制类型转换,
d.shout();//这时候就能调用shout方法了,
//instanceof关键字
/*Instanceof 是一个二元运算符组成一个布尔表达式;
使用方法: 引用 instanceof 类名
就是判断该引用所指向的对象 和后边的这个类名是否兼容;
可以把instanceof形象的比喻为 是不是 是就是真,不是就是假;
*/ //例:a里面装的是一个狗
System.out.println(a instanceof Dog);//true a是一个狗
System.out.println(a instanceof Cat);//false a不是一个猫
System.out.println(a instanceof Animal);//true a是一个动物
//instanceof关键字可以规避上面的风险,先判断a里面装的是不是狗
//是去做强转,绝对不会出错,否则不强转;
//所以上面程序可以改为:
if (a instanceof Dog) {
Dog d =(Dog)a;
d.shout();
}
}
}
class Animal{
public void eat(){
System.out.println(“This is a eat()”);
}
public void sleep(){
System.out.println(“sleep 6 hours”);
}
}
class Dog extends Animal{
public void shout(){
System.out.println(“Wang Wang !!!”);
}
public void sleep(){
System.out.println(“sleep 3 hours”);
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
写在最后
学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!
最后再分享的一些BATJ等大厂20、21年的面试题,把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。
Mybatis面试专题
MySQL面试专题
并发编程面试专题
6z9-1710692743190)]
Mybatis面试专题
[外链图片转存中…(img-txdOQHo3-1710692743191)]
MySQL面试专题
[外链图片转存中…(img-k4cMTMpx-1710692743191)]
并发编程面试专题