`
cii001
  • 浏览: 24379 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 多态性举例

阅读更多

 

自己比较懒,上次面试遇到这个问题,回来查了下。网上查了,大概有这两种例子。
1.一种是普通的超类,子类覆盖父类的方法。
2.父类是抽象类,子类实现父类的抽象方法。

 

1.网上摘抄:

 

Game类是Football、Basketball、Popolong的父类,Games类使用前面4个类。

Java根据动态绑定决定执行“更具体”的方法,即子类方法。

  1. //Game.java
  2. package  cn.edu.uibe.oop;
  3. public   class  Game {
  4.   protected   void  play(){
  5.   System.out.println( "play game" );
  6.  }
  7. }
  8. //Football.java
  9. package  cn.edu.uibe.oop;
  10. public   class  Football  extends  Game {
  11.   protected   void  play() {
  12.     System.out.println( "play football" );
  13.      super .play();
  14.  }
  15.   void  f(){
  16.   play();
  17.  }
  18. }
  19. //Basketball.java
  20. package  cn.edu.uibe.oop;
  21. public   class  Basketball  extends  Game{
  22.   protected   void  play() {
  23.   System.out.println( "play basketball" );
  24.  }
  25. }
  26. //Popolong.java
  27. package  cn.edu.uibe.oop;
  28. public   class  Popolong  extends  Game {
  29.   protected   void  play() {
  30.   System.out.println( "play popolong" );
  31.  }
  32. }
  33. //Games.java
  34. package  cn.edu.uibe.oop;
  35. public   class  Games {
  36.   public   static   void  main(String[] args) {
  37.   Game[] games =  new  Game[ 10 ];
  38.   games[ 0 ] =  new  Basketball();
  39.   games[ 1 ] =  new  Football();
  40.   games[ 2 ] =  new  Popolong();
  41.   
  42.    for ( int  i= 0 ;i<games.length;i++){
  43.     if (games[i]!= null )
  44.       games[i].play();
  45.   }
  46.   
  47.  }
  48. }

 

2.from network

 

如在计算公司雇员工资的超类中

          // 用抽象方法作为多态接口 
    public abstract class Employee { 
        ... 
        public abstract double earnings();    //定义抽象方法作为多态接口 
    }
//这个方法将作为多态接口被子类的方法所覆盖 
    public class Manager extends Employee { 
    ... 
    public double eamings () return 0.0;

 

 

    抽象方法也可用protected.

  1. public   class  CircleShapeApp{  
  2.      public   static   void  main(String[] args) {  
  3.         Circle circle =  new  Circle( 12.98 );  
  4.         Sphere sphere =  new  Sphere( 25.55 );  
  5.    
  6.         Shape shape = circle;        //向上转型  
  7.          //多态调用  
  8.         shape.computeArea();  
  9.         shape.computeVolume();  
  10.         System.out.println( "circle area: "  + shape.getArea());  
  11.         System.out.println( "circle volume: "  + shape.getVolume());  
  12.          //多态调用  
  13.         shape = sphere;  
  14.         shape.computeArea();  
  15.         shape.computeVolume();  
  16.         System.out.println( "Sphere area: "  + shape.getArea());  
  17.         System.out.println( "Sphere volume: "  + shape.getVolume());  
  18.     }  
  19. }


  


  
分享到:
评论

相关推荐

    计算机后端-Java-Java核心基础-第13章 面向对象05 18. 多态性使用举例.avi

    计算机后端-Java-Java核心基础-第13章 面向对象05 18. 多态性使用举例.avi

    day08_08多态性的应用举例

    JAVA实验典型举例

    例如,可能会有一个"Shape"抽象类,包含抽象方法"draw()",然后有"Circle"和"Square"类继承自"Shape",分别实现各自的绘制方法,展示继承和多态性。 其次,Java的异常处理是另一个重要的知识点。实验例子可能包含了...

    JAVA面向对象编程继承性和多态性PPT教案学习.pptx

    Java面向对象编程的核心概念之一是继承性和多态性。继承性允许子类继承父类的属性和行为,以此实现代码的复用和类的层次结构。在Java中,所有类都默认继承自`java.lang.Object`类。创建派生类(子类)时,可以使用`...

    运行时实现Java的多态性

    Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而不是在编译期调用重载方法的机制,下面就继承和接口实现两方面谈谈java运行时多态性的实现。 一、通过继承中超类对象引用变量引用子类对象来实现 举例...

    Java中的内部类应用举例

    此外,内部类可以声明为抽象类,允许其他内部类或外部类继承,这进一步扩展了Java的多态性。值得注意的是,与外围类不同,内部类还可以声明为`private`或`protected`,提供更细粒度的访问控制。 #### 三、枚举类型...

    JAVA c++比较 对比讲解二者不同 代码举例(英文版)

    - **JAVA**:同样支持继承和多态性,但一个类只能继承一个父类,可以通过接口(interface)来实现多重继承的效果。 #### 九、继承 - **C++**:支持单继承和多继承,即一个类可以从多个基类派生。 - **JAVA**:只支持...

    java中函数重载与覆盖例子

    在Java编程语言中,函数重载(Overloading)和覆盖(Overriding)是面向对象特性的重要组成部分,它们分别处理多态性中的静态多态和动态多态。本篇将通过一个具体的例子,深入探讨这两个概念。 函数重载是指在同一...

    java实例化对象的过程

    在实际开发中,我们可能遇到多态性,接口,抽象类等复杂情况。例如,如果`MyClass`继承自另一个类或实现了一个接口,那么在实例化`MyClass`时,也会涉及父类的构造器调用和接口的实现。 此外,Java还提供了匿名内部...

    进一步理解Java中的多态概念

    Java中的多态性是面向对象编程的一个核心特性,它允许我们使用一个接口来表示多种不同的类型,从而提高代码的灵活性和可复用性。多态性主要体现在两个方面:编译时多态性和运行时多态性。 1. **编译时多态性**:在...

    理解接口interface,j简单的一个demo

    这个简单的示例展示了接口在Java中的基本用法,特别是在多态性和面向接口编程中的作用。在Android开发中,接口常用于Activity与Fragment、Adapter与ListView、服务与Activity之间的通信,如OnClickListener、...

    丰巢科技Java面试题

    在Java核心概念中,面试官可能会询问关于数据类型、类与对象、封装、继承、多态性等基础知识。例如,会问到如何实现抽象类和接口的区别,以及何时选择哪种方式。此外,异常处理、垃圾收集机制、字符串池的概念也是常...

    Java初学者课件,适用于初学者

    Java的三个主要特征是封装、继承和多态性。封装使得数据和方法结合在一起,形成一个独立的单元,保护数据不被非法访问。继承则允许创建新类时重用现有类的功能,提高代码的复用性。多态性则允许不同的对象对同一消息...

    java陷阱常见面试题

    4. 并发问题:线程安全是Java并发编程的核心,理解synchronized、volatile和Atomic类的使用可以避免竞态条件和死锁。 5. 类加载器:不恰当的类加载可能导致类冲突,理解双亲委派模型有助于避免这类问题。 二、Java...

    java 多线程同步方法的实例

    在Java编程语言中,多...同时,理解并掌握这些同步机制的原理和使用场景,对于提升Java多线程编程的能力至关重要。在实际开发中,要特别注意死锁、活锁和饥饿等问题,避免因线程同步不当而导致的性能下降或程序错误。

    常见JAVA基础_4

    请举一个例子说明什么叫做“多态性”。 6。this和super各有什么含义? 7。试说明父类对象和子类对象的转换规则。 8。什么叫做默认构造函数? 9。在什么时候需要用到显式字段初始化? 10。如何在一个构造函数中...

    java课程设计:日历记事本

    4、在系统的设计中,要求运用面向对象的机制(继承、派生及多态性)来实现系统功能。 5、该系统的要求: (1)显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。 (2)定时提醒:...

    多态示例代码

    多态性是指同一种行为或操作可以应用于不同的对象,并产生不同的效果。在Java等面向对象语言中,多态分为编译时多态(静态多态)和运行时多态(动态多态)。编译时多态主要通过方法重载(Overloading)实现,而运行...

    广州今年最新java面试题

    深入理解类的构造器、访问修饰符、抽象类与接口的区别、以及如何实现多态性至关重要。 3. **集合框架**:Java集合框架包括List、Set、Queue和Map接口,以及ArrayList、LinkedList、HashSet、HashMap等实现类。面试...

Global site tag (gtag.js) - Google Analytics