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

商品网站建设实验记录黄冈网站建设设计

商品网站建设实验记录,黄冈网站建设设计,网站安全设置教程,阿里云主机如何安装wordpress生活中的多态 多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作,如图所示: 现实中,比如我们按下 F1 键这个动作,同一个事件发生在不同的对象上会产生不同的结果。…

生活中的多态

        多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:

现实中,比如我们按下 F1 键这个动作,同一个事件发生在不同的对象上会产生不同的结果。

  • 如果当前在浏览器界面下弹出的就是浏览器的帮助文档;
  • 如果当前在 Word 下弹出的就是 Word 帮助;
  • 在 Windows 下弹出的就是 Windows 帮助和支持。

三个必要条件 

  • 继承,子类继承父类
  • 重写,子类重写了父类的方法(方法名和父类同名则称为子类重写了父类的这个方法)
  • 父类引用指向子类对象

class Shape {void draw() {}
}class Circle extends Shape {void draw() {System.out.println("Circle.draw()");}
}class Square extends Shape {void draw() {System.out.println("Square.draw()");}
}class Triangle extends Shape {void draw() {System.out.println("Triangle.draw()");}
}

多态的实现方式 

方式一:重写

方式二:接口

方式三:抽象类和抽象方法

多态示例演示

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

要想调用父类中被重写的方法,则必须使用关键字 super

向上转型:Animal a = new Cat();(父类引用指向子类对象)

向下转型:Cat c = (Cat)a;(子类引用指向父类对象)

//动物类
abstract class Animal {  abstract void eat();  
} 
//猫类
class Cat extends Animal {  public void eat() {  System.out.println("吃鱼");  }  public void work() {  System.out.println("抓老鼠");  }  
}  
//狗类
class Dog extends Animal {  public void eat() {  System.out.println("吃骨头");  }  public void work() {  System.out.println("看家");  }  
}
public class Test {public static void show(Animal a)  {//调用eat方法a.eat();  // 类型判断,如果对象是猫执行猫做的事,如果是狗执行狗做的事if (a instanceof Cat)  {Cat c = (Cat)a; // 猫做的事情  c.work();  } else if (a instanceof Dog) {Dog c = (Dog)a;// 狗做的事情 c.work();  }  }  public static void main(String[] args) {// 以 Cat 对象调用 show 方法show(new Cat());// 以 Dog 对象调用 show 方法show(new Dog());}         
}

例子解析(结合代码仔细分析):

        show方法的参数是Animal对象,即父类对象。

        main方法中第一次调用show方法传入了子类对象,使用向上转型将子类对象(Cat)转为父类对象(Animal)的引用a,进入方法后,使用父类对象的引用a调用了eat方法,检查父类中是否有eat方法,如果没有则编译错误;如果有,则调用子类的同名方法,所以打印“吃鱼”。if语句中判断对象a属于Cat类的实例,使用向下转型将父类对象(Animal)的引用a转换为了子类对象(Cat)的引用c,使用子类对象的引用c调用work方法所以打印“抓老鼠”。

        main方法中第二次调用show方法传入了子类对象,使用向上转型将子类对象(Dog)转为父类对象(Animal)的引用a,进入方法后,使用父类对象的引用a调用了eat方法,检查父类中是否有eat方法,如果没有则编译错误;如果有,则调用子类的同名方法,所以打印“吃骨头”。if语句中判断对象a属于Dog类的实例,使用向下转型将父类对象(Animal)的引用a转换为了子类对象(Dog)的引用c,使用子类对象的引用c调用work方法所以打印“看家”。

多态的优点

  1. 消除类型之间的耦合关系,修改维护更方便简单。
  2. 可替换性,对已存在代码具有可替换性。
  3. 可扩充性,增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。
  4. 接口性,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。
  5. 灵活性,它在应用中体现了灵活多样的操作,提高了使用效率。
  6. 简化性,多态简化对应用软件的代码编写和修改过程,尤其在处理大量对象的运算和操作时,这个特点尤为突出和重要。
http://www.yayakq.cn/news/698791/

相关文章:

  • 东莞手工外发加工网如何做网站公司名seo
  • 如何弄网站黑龙江网站建设企业
  • 怎么建设微信二维码发在网站上网站后台维护主要做什么
  • 网站首页制作专门做dm单的网站
  • 专门做房地产设计的图片网站公司网站需要备案么
  • 金融行业网站建设南京江宁网站制作
  • php mysql网站后台源码建筑公司网站内容
  • 修改网站域名学校网站建设机构
  • 建立网站需要哪几个ns解析网站
  • 始兴县建设局网站东莞市疾控中心地址
  • 首次登陆建设银行网站图文解说刀具东莞网站建设
  • 工厂型企业做网站百度上如何做优化网站
  • 南京网站建设价位用织梦做的网站ftp怎么登陆
  • 网站外链建设是什么大连模板网站制作公司电话
  • 自己做网站怎么编代码网站设计方案怎么做
  • 地方文明网站建设方案什么平台可以免费发广告
  • 昆明网站建设首选公司买业务送网站
  • 怎么能查到网站是哪个公司做的泉州营销型网站建设
  • 哪个网站做五金冲压的国内的c2c网站有哪些
  • 都什么网站用wordpress校园网站建设教程视频
  • c网站开发视频教程免费网站友情链接
  • 网站响应样式自己做的网站怎么取sql数据库
  • 长沙做网站微联讯点不错沧浪企业建设网站公司
  • 买了域名不备案行吗农大南路网络营销推广优化
  • 做网站公司会场主持台词那个软件可以做三个视频网站
  • 比较好约的网站设计广水网站定制
  • 做网站感觉挣不到钱啊购物网站建设包括哪些
  • 网站开发语言分类seo怎么才能优化好
  • 网站开发怎样手机号验证网站群建设招标
  • 杭州品牌网站建设推广平面设计网课