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

机关网站模板最好的锦州网站建设

机关网站模板,最好的锦州网站建设,去国外做网站,推广链接网站1、接口的转换#xff08;向下#xff09; 子类对向和父类对象可以进行类型转化。接口也一样可以。 package com.test;// 接口Animal public interface Animal {void bark(); //等价于public abstract void bark();void move(); //等价于public abstract void move(); }pac…1、接口的转换向下 子类对向和父类对象可以进行类型转化。接口也一样可以。 package com.test;// 接口Animal public interface Animal {void bark(); //等价于public abstract void bark();void move(); //等价于public abstract void move(); }package com.test;// 通过接口Animal实现的Dog类 public class Dog implements Animal{public void bark() {System.out.println(狗在叫.);}public void move() {System.out.println(狗在奔跑。);} }// 通过接口Animal实现的Cat类 public class Cat implements Animal{public void bark() {System.out.println(猫在喵。);}public void move() {System.out.println(猫在跳。);} }// 通过实现两个接口包括Animal接口的类Bird public class Bird implements Animal,Flyable{public void bark() {System.out.println(鸟在唱歌。);}public void move() {System.out.println(鸟在蹦蹦跳跳。);}public void fly() {System.out.println(鸟在飞翔。);} }// public class Zoo {public static void main(String[] args) {Animal[] animals {new Dog(),new Cat(),new Bird()};for (Animal an : animals) {an.bark();an.move();}((Flyable)animals[2]).fly();} } 上面代码有两个接口Animal和Flyable类Dog、Cat分别实现了Animal接口类Bird同时实现了Animal和Flyable两个接口。 因为类Dog、Cat、Bird都实现了接口Animal上面代码中定义的Animal类型的数组animals中的成员可以包含Dog、Cat、Bird类的实例对象。即下面一行代码是被Java允许的 Animal[] animals {new Dog(),new Cat(),new Bird()};这样数组中animals的元素Animal类型变量可以执行Animal接口中定义的并在Dog、Cat、Bird类中实现的方法bark()和move()。 animals[2]是Bird类的实例对象但是它被声明成父接口Animal类型要使用Bird类中实现的Flyable接口中的fly()方法需要“向下转换”即使用一对括号子类/子接口把animals[2]转换为Flyable接口类型然后就可以调用Flyable接口中定义的在Bird类中实现的fly()方法如下代码 ((Flyable)animals[2]).fly(); 需要明白的是经过(Flyable) 进行转化后的animals[2]Bird类的实例仅有接口Flyable定义的Bird类中实现的fly()方法。 可以这样理解 1Bird类实现了Animal接口和Flyable接口 2变量animals 被声明成Animal接口类型但是通过Bird类创建的实例对象animals[2]这个变量animals[2]就像是被封印了非Animal接口中定义的其它方法仅能使用Animal接口中定义的在Bird类中实现的方法。 3通过Flyable接口进行强制转化通过Bird类创建的实例对象animals[2]就像是解封了Bird类中实现的Flyable接口中的方法fly()方法但是也同时封印了非Flyable接口中定义的其它方法bark()和move()方法。 2、接口的转换向下 package com.test;public class Trainer {// 定义一个属性类型是Animal接口private Animal animal;// 动物园里的驯兽师类Trainer构造方法public Trainer(Animal an) {this.animal an;}// 驯兽师的进行驯兽方法public void train() {animal.bark();animal.move();} }package com.test;public class Zoo {public static void main(String[] args) {// 使用Animal接口类型声明animals数组// 数组animals的成员分别是实现了Animal接口的Dog、Cat、Bird类Animal[] animals {new Dog(),new Cat(),new Bird()};// 创建动物园驯兽师类的实例对象Trainer trainer;for (Animal an : animals) {trainer new Trainer(an);trainer.train();}} } 前一部分的代码建立了类Dog、Cat、Bird都实现了Animal接口。 在驯兽师Trainer类中定义了Animal接口类型变量animal通过构造函数TrainerAnimal an传入的Animal接口类型变量animal赋值给Trainer类中定义的私有变量animal是Animal接口类型在Tainer类的训练方法train()方法中执行Animal接口中定义的方法bark()和move()。 在Zoo类中的main()函数中 1定义了animals数组数组类型是Animal但是数组中的元素是都实现了Aniaml接口的Dog、Cat、Bird类的实例对象。这些对象都具有Animal接口中定义的方法bark()和move()。 2创建驯兽师类Trainer的实例传入给Trainer的实例的方法train()的实参是animals数组其中的元素分别是Dog、Cat、Bird类的实例对象。根据传入的实参不同执行不同的类的实例对象的方法bark()和move()。 通过设计Trainer类就不需要针对每个动物去创建对应的驯兽师类DogTrainer、CatTrainer、BirdTrainer了。 为了再增加其他动物只要这个动物实现了Animal接口就可以在Zoo类中创建相应的实例对象加入到声明为Animal类型的数组animals中。Trainer类不用做任何修改即可训练这个动物了当然只能训练Animal接口中定义的、在该类中实现的动作bark()和move()。 这样未来仅需要修改Animal接口丰富训练内容及创建实现Animal接口的更多动物类Trainer类和Zoo类中的代码不用做任何修改动物园的动物们都可以得到驯兽师Trainer类的训练。 上面的阐述特别的啰嗦只是这让我比较清晰地理解了上面代码的意义。
http://www.pierceye.com/news/639969/

相关文章:

  • flash布局 的优秀网站大连网络广告
  • 网站运营seo浙江台州做网站的公司
  • 网站设计师培训学校京东联盟如何做查优惠卷的网站
  • 安全证查询官网安徽seo团队
  • 网站备案怎么注销天工网官方网站
  • 做网站去哪推广好安徽义信建设网站
  • 金乡网站建设哪家便宜示范建设验收网站
  • 西部数码网站管理助手 ftpwordpress 店铺
  • 怎样找到黄页网站唯品会 一家专门做特卖的网站
  • 企业数字展厅设计信息流优化师是干什么的
  • 网站建设福永附近网络公司怎样建设网站最好
  • 水利建设公共服务平台网站网站开发需要用什么
  • 2015做哪个网站致富网站点击量怎么看
  • 好学校平台网站模板下载wordpress 手机 登陆不了
  • 2021不良正能量免费网站app食品网站设计
  • ps做的网站林州网站建设哪家好
  • wordpress站点logo设置简易微网站模板
  • 做网站这么做网络工程师招聘
  • 如何做企业交易网站wordpress主题 ie打不开主页
  • 哪些网站做免费送东西的广告wordpress 请选择一个文件
  • wordpress定时备份插件贵州网站建设seo优化
  • 网站导航条怎么做效果wordpress会员网站
  • 企业网站空间在哪里自己做的网站竞价好还是单页好
  • 网站多域名怎么做网络系统管理员获取ip地址
  • 佛山专业做网站公司有哪些怎样推广自己的视频号
  • 网站不能调用样式旅游网站的功能
  • 哪里有网站建设的企业某某网站安全建设方案
  • 男女做那个的视频网站网站建设合同英文版
  • 营销型企业网站怎么建站做外账要登什么网站
  • 网站经营性备案莞城东莞网站建设