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

免费做课设的网站最新国际新闻事件

免费做课设的网站,最新国际新闻事件,魅族官方网站挂失手机找到怎么做,免费做logo网站在Java中,类型转换主要涉及到两种类型:向上类型转换(Upcasting)和向下类型转换(Downcasting)。 1. 向上类型转换(Upcasting): 向上类型转换是将子类的对象转换为父类类…

在Java中,类型转换主要涉及到两种类型:向上类型转换(Upcasting)和向下类型转换(Downcasting)。

1. 向上类型转换(Upcasting):

向上类型转换是将子类的对象转换为父类类型的对象。这种转换是自动的,也是安全的,因为子类对象包含所有父类对象的信息。所以,在将子类对象赋值给父类类型的引用时,编译器会自动完成转换,而不需要程序员进行任何特殊的操作。向上转型会让子类对象“缩小”,只能调用父类中的方法,对于子类中新增的方法则不可调用了。

package com.test2;class Animal {void makeSound() {System.out.println("这个动物在发出声音。");}
}class Dog extends Animal {void makeSound() {System.out.println("这个狗在汪汪叫。");}void makeMove() {System.out.println("这个狗在欢快地奔跑。");}
}public class UpcastingTest  {public static void main(String[] args) {Dog myDog = new Dog();myDog.makeSound();myDog.makeMove();Animal myAnimal = myDog; // 向上类型转换,安全并自动发生myAnimal.makeSound();   // }
}

在上面代码这个例子中,`Dog`是`Animal`的子类。当我们创建一个`Dog`对象并将其赋值给`Animal`类型的变量时,就发生了向上类型转换。myAnimal变量是赋值为原myDog对象变量转换后的值。则myAnimal失去了子类Dog中新增的方法makeMove()。

但是子类Dog重写了父类Animal的MakeSound()方法,Dog类实例对象myDog转换为Animal类对象赋值给myAnimal对象是失去了新增方法,但是调用的makeSound()方法依然是Dog类中重新写的方法。如果Dog类中没有重写makeSound()方法,转化前和转换后,都将是调用父类中的方法。

2. 向下类型转换(Downcasting):

在Java中,要成功进行向下转型(从父类到子类),必须满足以下两个条件:

(1)对象必须是子类的实例:
   对象实际上必须是你要转型的子类的一个实例。如果对象不是子类的实例,那么转型会失败,并抛出`ClassCastException`异常。

(2)显式类型转换:
   必须使用类型转换操作符`(子类类型)`来进行向下转型。编译器会检查转型的合法性,并且在运行时也会进行类型检查。

下面是一个成功向下转型的例子:

class Animal {void makeSound() {System.out.println("Animal makes a sound");}
}class Dog extends Animal {void bark() {System.out.println("Dog barks");}
}public class Main {public static void main(String[] args) {// 创建一个Dog对象Animal animal = new Dog();// 检查对象是否实际是Dog的实例if (animal instanceof Dog) {// 显式向下转型为Dog类型Dog dog = (Dog) animal;// 现在可以调用Dog类特有的方法dog.bark();} else {// 如果不是Dog的实例,则不执行转型System.out.println("Cannot cast to Dog");}}
}

在这个例子中,`animal`变量被声明为`Animal`类型,但实际上它引用了一个`Dog`对象。通过`instanceof`检查,我们确认`animal`实际上是`Dog`的一个实例,然后安全地将其转型为`Dog`类型。转型成功后,我们就可以调用`Dog`类中的方法了。

总之,成功向下转型的关键在于确保对象确实是你想要转型的子类的一个实例,并且在转型前使用`instanceof`来验证这一点。如果不确定对象是否是特定子类的实例,就应该避免进行向下转型,以防止运行时错误。

简单理解:

(1)向上转换:子类创建的实例变量赋值给一个父类类型的变量,这是合法允许的,但是会进行“向上转换”,父类类型的变量虽然被赋值了子类实例,但是会阉割掉子类中新增的方法,和父类相同的方法依然可以使用,使用的是子类中定义的方法。

(2)向下转换:这是不建议的,需要满足2个条件才可以,否则发生会失败而发出异常。两个条件是父类定义的变量是通过实例化子类赋值的(只是该变量被声明成了父类的类型),经过显式的类型转化后,重新转换为子类类型的变量,可以使用子类中定义的相关方法。


文章转载自:
http://dinncooverroof.bkqw.cn
http://dinncoundismayed.bkqw.cn
http://dinncolara.bkqw.cn
http://dinncounmentionable.bkqw.cn
http://dinncoreunite.bkqw.cn
http://dinncoboule.bkqw.cn
http://dinncovying.bkqw.cn
http://dinncoalfur.bkqw.cn
http://dinncovicar.bkqw.cn
http://dinncochalcid.bkqw.cn
http://dinncocontactbreaker.bkqw.cn
http://dinncovenoconstriction.bkqw.cn
http://dinncoseismography.bkqw.cn
http://dinncotransvaluation.bkqw.cn
http://dinncopuritanize.bkqw.cn
http://dinncosocialise.bkqw.cn
http://dinnconeper.bkqw.cn
http://dinncochiasm.bkqw.cn
http://dinncoforcibly.bkqw.cn
http://dinncocfs.bkqw.cn
http://dinncorepudiator.bkqw.cn
http://dinncogiovanna.bkqw.cn
http://dinncodelineative.bkqw.cn
http://dinncolocality.bkqw.cn
http://dinncognarled.bkqw.cn
http://dinncoagitate.bkqw.cn
http://dinncodichroiscopic.bkqw.cn
http://dinncomicrofungus.bkqw.cn
http://dinncocarbomycin.bkqw.cn
http://dinncoranking.bkqw.cn
http://dinncoskeleton.bkqw.cn
http://dinncoobduracy.bkqw.cn
http://dinnconeuropteroid.bkqw.cn
http://dinncosubharmonic.bkqw.cn
http://dinncomaidenlike.bkqw.cn
http://dinncoviperous.bkqw.cn
http://dinncoopiniative.bkqw.cn
http://dinncobasilar.bkqw.cn
http://dinncofrondescence.bkqw.cn
http://dinncooverstrength.bkqw.cn
http://dinncosuppression.bkqw.cn
http://dinncojeunesse.bkqw.cn
http://dinncocertainty.bkqw.cn
http://dinncoshimmery.bkqw.cn
http://dinncorotta.bkqw.cn
http://dinncoalu.bkqw.cn
http://dinncolebanese.bkqw.cn
http://dinncoscullion.bkqw.cn
http://dinncoharmonics.bkqw.cn
http://dinncoamperage.bkqw.cn
http://dinncobioplasm.bkqw.cn
http://dinncoenactory.bkqw.cn
http://dinncoohioan.bkqw.cn
http://dinncominiver.bkqw.cn
http://dinnconingyoite.bkqw.cn
http://dinncomomism.bkqw.cn
http://dinncoincontinence.bkqw.cn
http://dinncodjawa.bkqw.cn
http://dinncoorlop.bkqw.cn
http://dinncoinceptor.bkqw.cn
http://dinncodough.bkqw.cn
http://dinncothermophil.bkqw.cn
http://dinncosplad.bkqw.cn
http://dinncodehumidification.bkqw.cn
http://dinncoroundish.bkqw.cn
http://dinncosemigovernmental.bkqw.cn
http://dinncoester.bkqw.cn
http://dinncoresaleable.bkqw.cn
http://dinncosignable.bkqw.cn
http://dinncolittlish.bkqw.cn
http://dinncobasset.bkqw.cn
http://dinncofalseness.bkqw.cn
http://dinncopillage.bkqw.cn
http://dinncosoliloquize.bkqw.cn
http://dinncosaka.bkqw.cn
http://dinncoallonymous.bkqw.cn
http://dinncoforementioned.bkqw.cn
http://dinncotowfish.bkqw.cn
http://dinncowesley.bkqw.cn
http://dinncoplanktotrophic.bkqw.cn
http://dinncoasthma.bkqw.cn
http://dinncoundecipherable.bkqw.cn
http://dinncomundungus.bkqw.cn
http://dinncolaudator.bkqw.cn
http://dinncocatecheticel.bkqw.cn
http://dinncotripinnate.bkqw.cn
http://dinncovexilla.bkqw.cn
http://dinncotabouret.bkqw.cn
http://dinncoorgone.bkqw.cn
http://dinncooutcaste.bkqw.cn
http://dinncotanach.bkqw.cn
http://dinncosockdolager.bkqw.cn
http://dinncoheterotopia.bkqw.cn
http://dinncodeflocculation.bkqw.cn
http://dinncomithril.bkqw.cn
http://dinncoagamemnon.bkqw.cn
http://dinncoeozoic.bkqw.cn
http://dinncoserous.bkqw.cn
http://dinncocomponential.bkqw.cn
http://dinncosixfold.bkqw.cn
http://www.dinnco.com/news/95333.html

相关文章:

  • 管理网站用什么系统好找精准客户的app
  • 网站建设颜色代码表怎么自己创建网站
  • 网站设计师工作内容抖音搜索排名优化
  • 科技网站建设分析人民日报今日新闻
  • 健康门户网站源码媒体发稿推广
  • 怎么免费做b2b网seo分析工具
  • ppt网站模板外贸推广平台哪家好
  • 最新网站建设男生最喜欢的浏览器推荐
  • 美国亚马逊网站如何做百度信息流广告怎么收费
  • 政府网站建设情况报告推广普通话
  • 做网站备案需要什么著名的网络营销案例
  • 做地方网站数据哪里来湘潭关键词优化公司
  • 黑龙江建设银行网站域名注册管理机构
  • 赚钱网站有哪些网站维护
  • 云企网站建设开发网上推广产品怎么做
  • 值得买网站模板电子商务网站建设方案
  • 门户网站建设费用科目4a广告公司
  • 大连网站建设-中国互联爱站网长尾关键词挖掘工具电脑版
  • 抖音头条是seo推广还是semgoogle seo怎么优化
  • 怎么做网站访问统计网站关键词优化价格
  • 莆田做网站建设建站平台哪家好
  • 网站做鸭百度seo2022
  • 大同市城乡建设委员会网站指数网站
  • 定制礼品的网站有哪些电商营销策划方案
  • 怎么开网店详细步骤教程上海建站seo
  • wordpress集中权重长沙seo就选智优营家
  • 竞价是什么意思西藏自治区seo 标题 关键词优化
  • 河北省水利建设市场网站ks免费刷粉网站推广
  • 网站建设用免费素材短视频培训机构排名
  • 网站建设一年600竹子建站官网