Java 多态里面的知识点

阅读: 评论:0

Java 多态里面的知识点

Java 多态里面的知识点

1.在多态代码中访问成员变量

1. 访问成员变量
看等号左边是谁就先用谁的变量

public class Demo01Multi {public static void main(String[] args) {Fu zi = new Zi();zi.num//优先使用父类的 如果不存在的话 继续往上找}}

2.访问成员方法
看是谁new的,就优先用谁,没有则向上找。

口诀:

成员变量: 编译看左边,运行还是看左边
成员方法:   编译看左边,运行还是看右边

2.对象的向上转型

对象的向上转型其实就是多态的写法:

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

例:

Animal animal = new Cat();

含义:

		右边创建一个子类对象,相当于父类来看

注意事项:

	由下往上很安全:类似与 基本数据类型之间的强制转换

这个是动物类

	package com.tjs.day10.demo09;/*** @data 16:12*/public abstract  class Animal {public abstract void eat();}

这个是猫-继承动物类

	package com.tjs.day10.demo09;public class Cat extends Animal{@Overridepublic void eat() {System.out.println("猫吃肉");}}

实例对象

package com.tjs.day10.demo09;/*** @data 16:14*/
public class Demo09Mult {public static void main(String[] args) {Animal animal = new Cat();animal.eat();}
}

输出的是:

猫吃肉

3.对象的向下转型

对象向下转型,其实是一个还原的动作;
格式:

	(子类名称) 对象名 = (子类名称) 需要转换的对象名;

例: Cat cat = (Cat) animal;

含义:

	将父类对象,还原成本来的子类对象

注意事项:
a. 必须保证对象还原的是创建时候的类,如:猫 , 才能转换为猫 而不是狗,等等
b. 如果对象创建的时候不是猫,还原时还原成猫–编译的时候不报错 运行的时候报错
ClassCastException

4.使用instanceof判断向下转型

在向下转型时需要判断原本是什么类

实现代码如下:

package com.tjs.day10.demo09;/*** @data 16:14*/
public class Demo09Mult {public static void main(String[] args) {Animal animal = new Cat();//定义一只猫//向下转型if(animal instanceof Cat){Cat cat = (Cat) animal;cat.sleep();}if(animal instanceof Dog){Dog dog = (Dog) animal;dog.cathHome();}giveMeAPet(new Dog());}public static void giveMeAPet(Animal animal){//用处if(animal instanceof Cat){Cat cat = (Cat) animal;cat.sleep();}if(animal instanceof Dog){Dog dog = (Dog) animal;dog.cathHome();}}}

当中演示了多态的用法,比如女朋友需要一只动物不管是什么动物都可以,
然后传入一只狗进去用instanceof,判断是否原本子类是否是狗。

本文发布于:2024-01-30 20:31:47,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170661791022643.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:知识点   多态   Java
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23