Java基础之方法重写和多态示例

 更新时间:2019年08月24日 12:57:38   作者:考班格  
这篇文章主要介绍了Java基础之方法重写和多态,结合实例形式分析了java方法重写和多态的相关原理与使用技巧,需要的朋友可以参考下

本文实例讲述了Java基础之方法重写和多态。分享给大家供大家参考,具体如下:

示例代码:

子类的方法与父类的方法具有相同的返回类型和签名,子类方法重写父类方法。

class A{
  int i,j;          //父类变量
  A(int a,int b){    //父类构造
    i=a;
    j=b;
  }
  void show(){     //父类方法
    System.out.println(i+"  "+j);
  }
}
class B extends A{   //继承父类
  int k;             //子类变量
  B(int a,int b,int c){  //子类构造
    super(a,b);     //调用父类构造
    k=c;
  }
  void show(){     //子类方法重写父类方法,会隐藏父类方法
    System.out.println(i+"  "+j);
  }
  void show(String msg){   //子类方法,重载父类方法(方法签名不同,称为重载)
    //super.show();         //显示调用父类方法
    System.out.println(msg+k);
  }
}
class Override{
  public static void main(String[] args){
    B b=new B(1,2,3);
    b.show("This is k: ");
    b.show();
  }
}

多态:父类对象可以引用子类对象,引用不同对象造成不同结果,称为多态。

class Sup{          //父类
  void who(){
    System.out.println("Sup");
  }
}
class Sub1 extends Sup{     //子类
  void who(){
    System.out.println("Sub1");
  }
}
class Sub2 extends Sup{    //子类
  void who(){
    System.out.println("Sub2");
  }
}
class DynDispDemo{
  public static void main(String[] args){
    Sup sup=new Sup();      //父类对象
    Sub1 sub1=new Sub1();  //子类对象
    Sub2 sub2=new Sub2();  //子类对象
    Sup supf;    //父类对象
    supf=sup;   //父类对象引用父类对象
    supf.who(); //调用父类方法
    supf=sub1; //父类对象引用子类对象
    supf.who(); //调用子类方法
    supf=sub2; //父类对象引用子类对象
    supf.who(); //调用子类方法
  }
}

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • Java使用flyway实现脚本自动化的方法详解

    Java使用flyway实现脚本自动化的方法详解

    Flyway是一个开源的数据库版本控制工具,主要用于管理数据库的版本和变更,它可以自动化地将数据库迁移到不同的版本,同时支持多种数据库类型,本文给大家介绍了如何使用flyway实现脚本自动化,需要的朋友可以参考下
    2023-10-10
  • 工作中禁止使用Executors快捷创建线程池原理详解

    工作中禁止使用Executors快捷创建线程池原理详解

    这篇文章主要为大家介绍了工作中禁止使用Executors快捷创建线程池原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 解决springboot生成bean名称冲突(AnnotationBeanNameGenerator)

    解决springboot生成bean名称冲突(AnnotationBeanNameGenerator)

    这篇文章主要介绍了解决springboot生成bean名称冲突(AnnotationBeanNameGenerator),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • 使用Spring开启@Async异步方式(javaconfig配置)

    使用Spring开启@Async异步方式(javaconfig配置)

    这篇文章主要介绍了使用Spring开启@Async异步方式(javaconfig配置),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Maven中利用assembly插件打包jar包

    Maven中利用assembly插件打包jar包

    本文详细讲解了Maven中利用assembly插件打包jar包的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • java使用多线程读取超大文件

    java使用多线程读取超大文件

    这篇文章主要为大家详细介绍了java使用多线程读取超大文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • 基于spring @Cacheable 注解的spel表达式解析执行逻辑

    基于spring @Cacheable 注解的spel表达式解析执行逻辑

    这篇文章主要介绍了spring @Cacheable 注解的spel表达式解析执行逻辑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Hadoop+HBase+ZooKeeper分布式集群环境搭建步骤

    Hadoop+HBase+ZooKeeper分布式集群环境搭建步骤

    这篇文章主要介绍了Hadoop+HBase+ZooKeeper分布式集群环境搭建,集群环境至少需要3个节点,1个Master,2个Slave,节点之间局域网连接,可以相互ping通,本文通过实例给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • Java 实战项目之疫情防控管理系统详解

    Java 实战项目之疫情防控管理系统详解

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用Java实现一个疫情防控管理系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • java swing 实现加载自定义的字体

    java swing 实现加载自定义的字体

    这篇文章主要介绍了java swing 实现加载自定义的字体,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11

最新评论