java多态性怎么理解,Java什么叫多态

  java多态性怎么理解,Java什么叫多态

  如何解决写爬虫IP受阻的问题?立即使用。

  本教程运行环境:windows7系统,java8版本8,DELL G3电脑。

  

多态概述

   1、多态是面向对象继封装和继承之后的第三大特点。

  2.多态性现实意义理解:

  现实中的事情往往表现为各种形态,比如学生,学生是一类人,那么某个特定同学张三既是学生又是,也就是两种形态出现。

  作为一种面向对象的语言,Java也可以描述一个事物的各种形式。如果学生类继承了Person类,那么学生的对象既是学生也是人。

  3.多态性为父类引用变量可以指向子类对象

  4.前提条件:必须有父子关系。

   注意:在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。

  5.多态的定义和格式。

  定义:父类类型变量名=新子类类型();

  6.理解:

  多态性是同一行为具有多种不同表现或形式的能力。

  多态是同一个接口,使用不同的实例执行不同的操作。

  7.多态性的优势

  消除类型之间的耦合关系。

  替换性

  膨胀性

  连接

  灵活性

  简单化

  8.多态的三个必要条件。

  继承

  重写

  父类引用指向子类对象:Parent p=new Child();

  :

多态中成员的特点

   1.多态成员变量:编译运行时看左边。

  fu f=new Zi();

  system . out . println(f . num);//f是Fu中的值,只能得到父体中的值。2.多态成员方法:向左编译,向右运行。

  fu f1=new Zi();

  system . out . println(f1 . show());//f1的facade类型是Fu,但实际类型是Zi,所以调用重写的方法。

instanceof关键字

  功能:用于判断一个对象是否属于某种数据类型。

  注意:返回类型是布尔值。

  使用案例:

  fu f1=new Zi();

  傅f2=新子();

  if(Zi的f1实例){

  System.out.println(f1是Zi的类型);

  }

  否则{

  System.out.println(f1是儿子的类型);

  }

多态的转型

  多态性的变换可以分为向上变换和向下变换两种。多态本身就是向上转化的过程。使用格式:父类型变量名=新子类类型();

  适用场景:当不需要面对子类类型时,可以通过提高扩展性或者利用父类的功能来完成相应的操作。

  向下转换:已经向上转换的子类对象可以使用强制类型转换的格式,父类引用类型可以改成子类引用各种类型使用的格式:子类类型变量名=(子类类型)父类的变量;

  适用场景:当你想使用特定于子类的函数时。

  

多态案例:

  示例1: (理解多态,可以重点看这个案例)

  包day0524

  公共类演示04 {

  公共静态void main(String[] args) {

  people p=new Stu();

  p . eat();

  //调用唯一的方法

  Stu s=(Stu)p;

  s.study()。

  //((Stu) p)。研究();

  }

  }

  阶级人民{

  public void eat(){

  system . out . println( eat );

  }

  }

  类Stu扩展人{

  @覆盖

  public void eat(){

  System.out.println(吃水煮肉片);

  }

  公共无效研究(){

  System.out.println(好好学习);

  }

  }

  班主任延伸人{

  @覆盖

  public void eat(){

  System.out.println(吃樱桃);

  }

  public void teach(){

  System.out.println(认真教);

  }

  }例2:

  题的运行结果是怎样的?

  包day0524

  公共类演示1 {

  公共静态void main(String[] args) {

  A A=new A();

  a . show();

  B B=new B();

  b . show();

  }

  }

  A级

  公共void show(){

  show 2();

  }

  public void show2(){

  system . out . println( A );

  }

  }

  B类扩展了A{

  public void show2(){

  system . out . println( B );

  }

  }

  C类扩展了B{

  公共void show(){

  super . show();

  }

  public void show2(){

  system . out . println( C );

  }

  }答案:A B

  相关视频教程推荐:java视频教程以上是如何理解Java多态性的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: