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

佛山家具网站建设公司网站设计培训成都哪家好

佛山家具网站建设公司,网站设计培训成都哪家好,注册公司条件有哪些,河南省考生服务平台官网一#xff1a;面向对象三大特征之三#xff1a;多态 1.多态是什么#xff1f; 同类型的对象#xff0c;执行同一个行为#xff0c;会表现出不同的行为特征。 比如#xff1a;猫和狗都是动物类型#xff0c;执行同一个行为#xff0c;但是会表现出不同的行为特征面向对象三大特征之三多态 1.多态是什么 同类型的对象执行同一个行为会表现出不同的行为特征。 比如猫和狗都是动物类型执行同一个行为但是会表现出不同的行为特征 2.多态的常见形式 父类类型 对象名称 new 子类构造器; 接口 对象名称 new 实现类构造器; 例 /* 动物类父类抽象类*/ public abstract class Animal {public abstract void run(); }/* 狗类子类继承动物类*/ public class Dog extends Animal {Overridepublic void run() {System.out.println(狗恰狗粮);} }/* 猫类子类继续动物类*/ public class Cat extends Animal {Overridepublic void run() {System.out.println(猫恰猫粮);} }public class PolymorphismTest {public static void main(String[] args) {//这是之前的形式Dog d1 new Dog();d1.run();Cat c1 new Cat();c1.run();System.out.println(----------------);/*多态的形式为父类类型 对象名称 new 子类构造器;例如下 右边的狗对象 赋值 给 左边的动物对象下方狗对象只代表单种动物类型但是动物对象代表所有的动物属于是小范围赋值给大范围合情合理。*/Animal d2 new Dog();d2.run();Animal c2 new Cat();c2.run();} } 控制台输出结果 3.多态中成员访问特点 方法调用编译看左边运行看右边 如上 1.编译阶段的时候会去到这个Animal类里找run方法  2.找到了以后等到运行的时候就会去Dog类里找run方法 变量调用编译看左边运行也看左边多态侧重行为多态 4.多态的前提 需要有继承/实现关系有父类引用指向子类对象有方法重写。 二多态的优势 1.优势 1在多态形式下右边对象可以实现解耦合便于扩展和维护 没换掉之前 把对象更换成run行为也会跟着改变不需要改动代码 2定义方法的时候使用父类作为参数该方法就可以接收这个父类的一切子类对象体现出多态的扩展与便利 所有动物参加赛跑比赛 public class PolymorphismTest {public static void main(String[] args) {System.out.println(---比赛开始---);Animal d1 new Dog();go(d1);Animal c1 new Cat();go(c1);System.out.println(吃得一样快比赛结束平手平手);}/*需求所有动物可以一起参加比赛*/public static void go(Animal a){a.run();} } 执行原理在上列代码中第一步会先将狗对象的地址给到a1然后go方法再将狗对象的地址传给形参a形参a接收到对象地址后根据地址去访问狗对象里的run行为。 2.多态下产生的问题 多态下不能使用子类的独有功能 因为父类是被继承的因此继承了父类的子类会有父类的一切行为但是父类是没有子类独有行为的。 三多态下引用类型的类型转换 1.引用类型是什么 也就是我们自己定义的动物类、学生类、狗类猫类等等。 2.引用类型的类型转换 自动类型转换子类对象赋值给父类类型的变量指向。 因为父类范围大所有子类对象赋值给父类类型的变量指向➡属于小范围赋值给大范围因此是自动类型转换。 强制类型转换从父到子 子类 对象变量 (子类)父类类型的变量; 作用可以解决多态下的劣势可以实现调用子类的独有行为方法功能。 public class Animal {/*动物通用行为跑*/public void run(){System.out.println(动物可以跑^_^);} } public class Dog extends Animal{/*重写父类run方法*/Overridepublic void run() {System.out.println(跑得飞快~~);}/*狗类独有方法看门*/public void lookDoor(){System.out.println(看门);} } public class Cat extends Animal{Overridepublic void run() {System.out.println(跑得也很快);}public void bullyDog(){System.out.println(在欺负);} } public class PolymorphismTest {public static void main(String[] args) {System.out.println(多态下引用类型的自动类型转换);Animal a1 new Dog();a1.run(); // 报错多态下不能访问子类独有功能 // a1.lookDoor();System.out.println(------------);Animal a2 new Cat();a2.run(); // 报错多态下不能访问子类独有功能 // a2.bullyDog();System.out.println(\n多态下引用类型的强制类型转换); // 从父类类型到子类类型大转小→必须强制类型转换Dog d (Dog) a1;d.run();d.lookDoor();System.out.println(-------------); // 从父类类型到子类类型大转小→必须强制类型转换Cat c (Cat) a2;c.run();c.bullyDog();} } 控制台输出结果 注意如果转型后的类型和对象真实类型不是同一种类型那么在转换的时候就会出现ClassCastException 3.instanceof关键字  Java建议多态下的引用类型在强制类型转换的前使用 instanceof 关键字判断当前对象的真实类型再进行强制类型转换。 变量名 instanceof 真实类型 判断 instanceof 左边的变量指向的对象的真实类型是否与右边的类型或者与其子类类型一样是则返回true反之。Animal a3 new Cat(); // 强制类型转换编译阶段不报错的注意继承或者实现关系编译阶段可以强制没有毛病运行可能出错了 // Dog dog (Dog)a3; // java建议在强制转换前使用instanceof关键字判断当前对象的真实类型再进行强制转换if (a3 instanceof Cat){ //判断a3指向的是不是Cat类Cat cat (Cat)a3; //是cat强制转换成cat类从父类类型到子类类型大转小必须进行强制类型转换cat.run(); cat.bullyDog();}else if (a3 instanceof Dog){ //反之判断a3指向是Dog则强制转换成狗类型Dog dog (Dog) a3;dog.run();dog.lookDoor();}System.out.println(-------------);System.out.println(-------------);Animal a3 new Dog(); // 强制类型转换编译阶段不报错的注意继承或者实现关系编译阶段可以强制没有毛病运行可能出错了 // Dog dog (Dog)a3; // java建议在强制转换前使用instanceof关键字判断当前对象的真实类型再进行强制转换if (a3 instanceof Cat){ //判断a3指向的是不是Cat类Cat cat (Cat)a3; //是cat强制转换成cat类从父类类型到子类类型大转小必须进行强制类型转换cat.run();cat.bullyDog();}else if (a3 instanceof Dog){ //反之判断a3指向是Dog则强制转换成狗类型Dog dog (Dog) a3;dog.run();dog.lookDoor();}System.out.println(-------------);4.知识总结 1.引用类型的类型转换有几种方式 自动类型转换强制类型转换。 2.强制类型转换能解决什么问题需要注意什么 可以解决多态下不能访问子类独有功能的问题强制转换后可以访问 有继承或者实现关系的两个类型就可以进行强制转换编译无问题 运行时如果发现强制转换后的类型不是对象的真实类型则会报错 注意Java建议强制转换前使用instanceof关键字判断一下当前对象的真实类型再进行强制类型转换
http://www.w-s-a.com/news/326336/

相关文章:

  • 付款网站源码建网站卖东西
  • 用php做的录入成绩的网站wordpress等级插件
  • 网站运营优化方案广西桂林公司
  • 快递网站策划怎么做ppt长春建设信息网站
  • 做服装搭配图的网站有哪些经营一个网站要怎么做
  • 呼市品牌网站建设那家好增城住房和建设局网站
  • 网站首页布局设计代码太仓网站开发建设服务
  • 学校网站建设与管理porto wordpress模板
  • 余姚做网站公司网站建设有哪些基本流程
  • 门户网站建设的报价百度医生在线问诊
  • 北京公司注册在哪个网站浏览器打开网址404
  • 廊坊做网站公司绣花图案设计网站
  • 网站空间租用哪个好购物网站建设模板图片
  • 建设银行包头分行网站泰安网签成交量最新
  • 手机微网站与微官网现在去成都需要隔离吗
  • 学校的二级网站怎么建设深圳企业网站制作设计
  • 自己做qq头像静态的网站网站建设是属于软件开发费吗
  • 举报网站建设做网站之前的工作
  • 用QQ群做网站排名个人网站制作协议
  • 做茶叶网站的素材天津网站营销
  • 网站设计建设流程图微信端的网站开发python
  • 湖州网站seo优化网站改域名备案
  • dedecms怎么制作网站合肥电商网站开发
  • 网站开发通用流程图做flash的网站
  • 营销型网站有哪些平台网站建设藤设计
  • 网站需求分析网站建设美食网站建设多少钱
  • 有专门做网站的吗建德网站
  • 做网站要买服务器吗单页设计思路
  • 一 电子商务网站建设规划网站开发前端框架和后端框架
  • 自助网站建设系统软件自己免费建设网站