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

口碑好的做网站公司网站快速收录教程

口碑好的做网站公司,网站快速收录教程,一个好的网站怎样布局,优秀网页设计作品分析ppt什么是多态? 多态是在继承/实现情况下一种现象,表现为:对象多态和行为多态。 同一个对象,在不同时刻表现出来的不同形态。 多态的前提: 要有继承/实现关系 要有方法的重写 要有父类引用指向子类对象。 多态的具体代码…

什么是多态?

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

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

多态的前提:

要有继承/实现关系

要有方法的重写

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

多态的具体代码体现:

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.hkea.cn/news/375537/

相关文章:

  • 注册科技有限公司可以做网站吗百度搜索排名机制
  • 武汉做网站好网站制作多少钱一个
  • 安阳网站建设怎么从网上找客户
  • 文章博客媒体网站模板怎样在百度上打广告
  • 做网站是不是要模板直接打开百度
  • 哪个网站做app推广服务商
  • 中国哪里在大建设网站优化培训学校
  • 自己做的网站点首页出错腾讯广告代理商加盟
  • 如何做免费的网站推广东莞百度seo
  • 宜昌网站制作公司百度竞价官网
  • 建站公司网站模板论坛怎么建网站
  • 上海做b2b网站公司深圳公司网络推广该怎么做
  • 自己做的网站怎么在百度可以查到网络小说网站三巨头
  • 怎么做网站客服弹窗站长之家seo工具包
  • 自己建一个电商网站吗网络营销的定义
  • 专门做金融的招聘网站四川seo选哪家
  • wordpress nginx伪静态配置拼多多seo怎么优化
  • 深圳网站开发电话惠州网络营销
  • 中宁网站建设公司商城全网推广运营公司
  • 网站文章列表如何排版郑州seo技术培训班
  • 小型b2c网站百度开户渠道商哪里找
  • 武进区住房和城乡建设局网站爱站网能不能挖掘关键词
  • APP手机端电子商务网站建设营销成功的案例
  • 公司网站引导页百度搜索关键词排名优化技术
  • 网站开发与维护学什么网站建设seo优化培训
  • 常州网站开发百度网盘电脑版官网
  • wordpress安全权限关键词优化公司哪家好
  • 银川做网站服务google play下载安卓
  • 科技型中小企业服务网安徽搜索引擎优化seo
  • 网站建设专家排名邯郸seo营销