当前位置: 首页 > wzjs >正文

西安定制网站建设宣传推广的十种方式

西安定制网站建设,宣传推广的十种方式,discuz手机版,小说短篇做的好的网站在面向对象编程中,转型(Casting) 是指改变对象的引用类型,主要涉及 继承关系 和 多态。 向上转型(Upcasting) ⬆️ 定义 将 子类对象 赋值给 父类引用(自动完成,无需强制转换&…

在面向对象编程中,转型(Casting) 是指改变对象的引用类型,主要涉及 继承关系多态

向上转型(Upcasting) ⬆️

定义

子类对象 赋值给 父类引用(自动完成,无需强制转换)。

特点

✅ 安全:子类一定 “是” 父类(Dog 是 Animal)。
✅ 自动转型:编译器隐式完成,无需手动转换。
✅ 丢失子类特有方法:父类引用只能调用父类定义的方法。

代码示例

class Animal {void eat() { System.out.println("动物在吃"); }
}class Dog extends Animal {void bark() { System.out.println("狗在叫"); }
}public class Main {public static void main(String[] args) {Dog dog = new Dog();  // 子类对象Animal animal = dog;  // 向上转型(自动)animal.eat();  // 可以调用父类方法// animal.bark();  // ❌ 编译错误!父类引用无法调用子类特有方法}
}

输出

动物在吃

关键点

  • Animal animal = dog; 是向上转型,animal 只能访问 Animal 类的方法(eat())。
  • 如果调用 bark(),编译器会报错,因为 Animal 类没有定义该方法。

向下转型(Downcasting) ⬇️

定义

父类引用 强制转回 子类引用(需手动转换,且可能抛出异常)。

特点

⚠️ 不安全:必须确保父类引用 实际指向该子类对象,否则会抛出 ClassCastException
🔹 需显式转换:必须用 (子类名) 强制转换。
🔹 恢复子类特有方法:转型成功后,可以调用子类的方法。

代码示例

Animal animal = new Dog();  // 向上转型(Animal引用指向Dog对象)// 向下转型(强制转换)
Dog dog = (Dog) animal;  // 安全,因为animal实际是Dog
dog.bark();  // 可以调用子类方法// 危险的情况!
Animal catAnimal = new Cat();  // Animal引用指向Cat对象
// Dog badDog = (Dog) catAnimal;  // ❌ 运行时抛出ClassCastException!

输出

狗在叫

关键点

  • (Dog) animal 是向下转型,前提是 animal 实际指向 Dog 对象。
  • 如果 animal 实际指向 Cat,强制转 Dog 会抛出异常。

如何安全地向下转型? 🔒

使用 instanceof 检查对象类型,避免 ClassCastException

示例

Animal animal = getRandomAnimal();  // 可能返回Dog或Catif (animal instanceof Dog) {Dog dog = (Dog) animal;  // 安全转型dog.bark();
} else if (animal instanceof Cat) {Cat cat = (Cat) animal;cat.meow();
}

向上转型 vs 向下转型对比表 📊

特性向上转型(Upcasting) ⬆️向下转型(Downcasting) ⬇️
方向子类 → 父类父类 → 子类
安全性安全(自动完成)不安全(需手动检查)
是否需要强制转换不需要(隐式)需要(显式,如 (Dog) animal
方法访问只能调用父类方法可调用子类特有方法
典型用途多态、通用代码设计需要调用子类特有方法时

实际应用场景 🛠️

向上转型的用途

多态:统一处理不同子类对象

List<Animal> zoo = Arrays.asList(new Dog(), new Cat());
for (Animal animal : zoo) {animal.eat();  // 父类引用调用,实际执行子类方法
}

向下转型的用途

调用子类特有方法

Animal animal = getAnimal();  // 可能是Dog或Cat
if (animal instanceof Dog) {Dog dog = (Dog) animal;dog.bark();  // 只有Dog才有bark()
}

一句话总结 🎯

  • 向上转型:子类对象 → 父类引用(自动,用于多态)。
  • 向下转型:父类引用 → 子类引用(手动,需用 instanceof 检查)。

记住

  • 向上转型是 “放宽视野”(把狗当成动物)。
  • 向下转型是 “缩小范围”(把动物还原成狗)。
http://www.dtcms.com/wzjs/370234.html

相关文章:

  • 网站后台管理系统怎么用采集站seo提高收录
  • 建站平台塔山双喜简述网络营销的特点及功能
  • 重庆有哪些建设公司什么是seo优化
  • 常德哪里有做网站什么是百度指数
  • 做网站开封seo优化上海牛巨微
  • 机关单位网站安全建设怎么联系地推公司
  • protenus代做网站佛山网络排名优化
  • 北京有哪些网站建设公司好seo作弊
  • 在哪请人做网站zac seo博客
  • 雄安网站建设机构优化 保证排名
  • wordpress移动端 菜单百度网站排名seo
  • 网站建设客户需求分析表网站制作模板
  • wdcp网站无法访问小程序开发教程
  • 网站的竞争对手广州新闻24小时爆料热线
  • 安徽网站建设有限公司哈尔滨seo网站管理
  • wordpress首页文章显示图片seo搜索引擎
  • wordpress 育儿主题成都seo优化公司排名
  • 南充公司做网站免费注册个人网站不花钱
  • 汕头网站关键排名seo排名优化培训价格
  • 做外贸需要注册哪些b2b网站免费人脉推广
  • 在线网站搭建系统网店推广方法
  • 网页设计网站页面代码seo接单平台有哪些
  • 小程序推广话术案例seo搜索引擎优化工具
  • 好的龙岗网站建设盘多多网盘资源库
  • 响应式网站开发哪个好百度云网盘入口
  • 久久网站建设游戏推广文案
  • 政府类型网站建设方案怎么做互联网推广
  • 网站建设试题卷网页免费制作网站
  • 设计学习网站抖音seo招商
  • b2b电子商务平台网站有哪些网络营销推广策划书