①定义:
Java的多态是指同一个方法在不同对象上有不同的行为。它是面向对象编程的一个重要特性,通过多态可以实现代码的灵活性和可扩展性。
在Java中,多态的实现主要依靠两个机制:继承和方法重写。
-
继承:子类可以继承父类的属性和方法。当子类继承父类后,可以使用父类的引用来引用子类的对象。这样,通过父类的引用调用同名方法时,实际上会调用子类中重写的方法。
-
方法重写:子类可以重写父类的方法,即在子类中重新定义与父类中同名、同参数列表、同返回类型的方法。当父类的引用指向子类的对象时,调用该方法时会执行子类中的方法。
多态的优点:
-
提高代码的灵活性和可扩展性:通过多态,可以在不修改原有代码的情况下,通过增加新的子类来扩展程序的功能。
-
简化代码的编写和维护:通过多态,可以使用父类的引用来统一处理不同子类的对象,减少了代码的重复性。
-
提高代码的可读性:通过多态,可以使代码更加简洁、清晰,易于理解和维护。
②方法的多态
方法的重载和重写就体现了多态
③对象的多态
(1)一个对象的编译类型和运行类型可以不一致
Animal animal = new Dog();
编译类型为Animal,运行类型为Dog;
(2)编译类型在定义对象时,就确定了,不能改变;
(3)运行类型可以变化;
Animal animal = new Dog();//编译类型为animal,运行类型为dog; animal = new Cat();//编译类型为animal,运行类型为cat;
(4)编译类型看等号的左边;运行类型看等号的右边;
④向上转型
(1)本质:父类的引用指向了子类的对象;
(2)语法:父类类型 引用名=new 子类类型();
Animal animal = new Dog();
(3)特点:编译类型看左边,运行类型看右边;
可以调用父类中的所有成员(需遵守访问权限),
不能调用子类中特有成员,(因为在编译阶段,能调用哪些成员,是由编译类型决定的)
//animal.catchMause();错误,因为这是子类特有的方法
最终运行效果看子类(运行类型)的具体实现;即调用方法时,按照从子类(运行类型)开始查找重写或重载的方法,如果没有的话,就去父类中找,直到Object类;
⑤向下转型
(1)语法:子类类型 引用名=(子类类型)父类引用;
Animal animal = new Dog(); Dog dog = (Dog) animal;
(2)只能强转父类的引用,不能强转父类的对象;
(3)要求父类的引用必须指向的是当前目标类型的对象;
(4)当向下转型后,可以调用子类类型中的所有成员;
⑥注意事项
(1)属性没有重写之说,属性的值只看编译类型(等号的左边);
(2)instanceOf比较操作符,用于判断对象的运行类型,是否为XX类型或XX类型的子类型
猜你喜欢
- 14天前(江西启动“唱游江西”计划)江西启动“唱游江西”计划
- 14天前(2020海丝之路文化博览会)2023海丝之路文化和旅游博览会开幕
- 14天前(东北地区全域旅游)东北三省一区宣传贯彻研学旅游行业标准
- 14天前(札幌小樽市)2024年暑期飞往北海道避暑吧!札幌小樽city walk路线推荐
- 14天前(曼谷丽思卡尔顿公寓价格)曼谷丽思卡尔顿酒店盛大启幕,开创泰国奢华雅致新纪元
- 14天前(安岚度假村及酒店推出"山海之约"目的地婚礼计划)安岚度假村及酒店推出"山海之约"目的地婚礼计划
- 14天前(岭南东方大酒店)粤西成势 | 阳江阳春长兴岭南东方酒店正式签约,粤西文旅再添明珠
- 14天前(“百场黄梅唱响百家景区”示范演出活动在黄山风景区举行)“百场黄梅唱响百家景区”示范演出活动在黄山风景区举行
- 14天前(“三天跨两城”催生租车新需求,神州租车清明跨城订单同比增长416%)“三天跨两城”催生租车新需求,神州租车清明跨城订单同比增长416%
- 14天前(曹妃甸美仑华府哪个楼层好)曹妃甸新城教育经济新引擎启动—美仑国际酒店盛大开业
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章