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

电商型企业网站建设文化管 网站建设规划

电商型企业网站建设,文化管 网站建设规划,关方网站买微信,百度h5下载什么是多态? 多态是在继承/实现情况下一种现象,表现为:对象多态和行为多态。 同一个对象,在不同时刻表现出来的不同形态。 多态的前提: 要有继承/实现关系 要有方法的重写 要有父类引用指向子类对象。 多态的具体代码…

什么是多态?

多态是在继承/实现情况下一种现象,表现为:对象多态和行为多态。

同一个对象,在不同时刻表现出来的不同形态。

多态的前提:

要有继承/实现关系

要有方法的重写

要有父类引用指向子类对象。

多态的具体代码体现:

People类:

package cn.ensource.d1_polymorphism;// 父类
public class People {public void run() {System.out.println("人类快跑");}
}

Teacher类:

package cn.ensource.d1_polymorphism;public class Teacher extends People{@Overridepublic void run() {System.out.println("老师快跑!");}
}

 Student类:

package cn.ensource.d1_polymorphism;public class Student extends People{@Overridepublic void run() {System.out.println("学生快跑!");}
}

Test类: 

package cn.ensource.d1_polymorphism;public class Test {public static void main(String[] args) {// 目标:认识对象多态、行为多态// 对象多态People p1 = new Teacher();People p2 = new Student();// 行为多态p1.run();   // 编译看左边,运行看右边,看真实对象的方法p2.run();}
}

多态的一个注意事项:

多态对对象、行为的多态,Java中的属性(成员变量)不谈多态。

package cn.ensource.d1_polymorphism;public class Test {public static void main(String[] args) {// 目标:认识对象多态、行为多态// 对象多态People p1 = new Teacher();People p2 = new Student();// 行为多态p1.run();   // 编译看左边,运行看右边,看真实对象的方法p2.run();System.out.println(p1.name);   // 识别技巧:编译看左边,运行看左边,变量不讲多态性System.out.println(p2.name);}
}

多态中成员访问特点(记忆):

成员访问特点:

成员变量:编译看父类,运行看父类;

成员方方法:编译看父类,运行看子类;

多态使用的好处:

在多态的形式下,右边对象是解耦合的,更便于扩展和维护。

高内聚、低耦合。

定义方法的时候,使用父类类型的形参,可以接受一切子类对象,扩展性强,更便利。

提高了程序的扩展性,定义方法的时候,使用父类型作为参数,在使用的时候,使用具体的子类型参与操作。

弊端:不能使用子类特有的成员。

package cn.ensource.d2_polymorphism;public class Test {public static void main(String[] args) {// 目标:认识多态的好处//好处一:可以实现解耦合,右边对象可以随时切换,后续业务随机改变
//        People p1 = new Student();People p1 = new Teacher();p1.run();// 好处二: 可以使用父类类型的变量作为形参,可以一切子类对象Student s = new Student();Teacher t = new Teacher();}public static void go(People p) {}
}

多态下,会存在一个问题,怎么解决?

多态下不能使用子类的独有功能。

package cn.ensource.d2_polymorphism;public class Test {public static void main(String[] args) {// 目标:认识多态的好处//好处一:可以实现解耦合,右边对象可以随时切换,后续业务随机改变
//        People p1 = new Student();People p1 = new Teacher();p1.run();
//        p1.test();   // 无法调用子类的独有功能,因为编译时看左边,人类是没有这个方法的。// 好处二: 可以使用父类类型的变量作为形参,可以一切子类对象Student s = new Student();Teacher t = new Teacher();}public static void go(People p) {}
}

多态下的类型转换问题:

类型转换:

自动类型转换: 父类 变量名 = new 子类();

强制类型转换:子类 变量名 = (子类)父类变量;

强类型转换的一个注意事项:

存在继承/实现关系就可以在编译阶段进行强制类型转换,编译阶段不会报错。

运行时,如果发现对象的真实类型与强制后的类型不同,就会报类型转换异常(ClassCastException)的错误出来。

Exception in thread "main" java.lang.ClassCastException: class cn.ensource.d2_polymorphism.Student cannot be cast to class cn.ensource.d2_polymorphism.Teacher (cn.ensource.d2_polymorphism.Student and cn.ensource.d2_polymorphism.Teacher are in unnamed module of loader 'app')at cn.ensource.d2_polymorphism.Test.main(Test.java:19)

强转前,Java建议:

使用instanceof关键字,判断当前对象的真实类型,再进行强转。

对象回调。

 多态中的成员转型:

向上转型:

父类引用指向子类对象就是向上转型。

向下转型:

格式:子类 对象名 = (子类型)父类引用。

http://www.yayakq.cn/news/544971/

相关文章:

  • 网站推广免费 优帮云肥城市住房和城乡建设厅网站
  • 怎么做菠菜网站哪些网站可以做产品推广
  • 用什么网站做微信推送大连开发区做网站的公司
  • 可以自己做网站不菠萝菠萝蜜免费播放视频
  • 网站建站网站496565外贸营销信
  • 东莞官方网站建设适合做设计公司的名字
  • 网站开发开发需求文档莱芜二手房
  • 建设小学瓯江小区网站库尔勒网站建设电话
  • 蒲江网站建设wordpress 免签约支付宝
  • 莱芜亓家网站管理系统网站建设
  • 小蘑菇网站开发玩具网站建设规划书
  • 营销型网站建立校园网站规划与建设
  • js网站变灰色代码在线海报免费制作
  • 网站视觉优化的意义网站如何备案
  • 子网站建设手机微网站建设多少钱
  • 专业网站运营莱芜有需要制作网站的公司吗
  • 微网站开发平台免费百度网站开发业务
  • 海南网站建设公司创建网站如何注册
  • 网站开发建设赚钱吗深圳英文站seo
  • 北京网站建设 合一具体c2c网站建设实例
  • 商城网站服务器wordpress连接微博专业版 下载
  • 说服企业做网站app 移动网站建设
  • 天津专业智能建站网站页面相似度检测
  • 葫芦岛网站建设找思路如何让网站被谷歌收录
  • 宁波网站建设联系电话查询wordpress 多语言插件哪个好
  • 沂源网站开发设计图网站
  • 百度怎么建网站苏州园区已经烂掉了
  • 网页建站网站优化算法
  • 网站怎么做移动图片大全wordpress增加友情链接
  • 房产网站建设ppt最近最新免费手机中文