`
xiaoxubuaa
  • 浏览: 6493 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

多态与重载

阅读更多

       继承、重载和多态是可以使你开发的代码易于复用的,易于修改的方法。下面简单介绍一下重载和多态的概念以及用法。

     重载是用于在给定了参数列表和一组候选函数成员的情况下,选择一个最佳函数成员来实施调用。具体点说,就是在所定义的类中,有多个名称相同,但是参数的个数或类型不同的方法,当程序在运行时,可以自动进行匹配。例如下面的程序就是一个重载的示例,我们在其中定义了三个重名,但是参数类型和返回值不同的方法:

     public class calculate {
    public int addNums(int a, int b) {
        return a + b;
    }

    public double addNums(double a, double b) {
        return a + b;
    }

    public float addNums(float a, float b) {
        return a + b;
    }
}

     下面是重载的几个特性:

      1.返回的类型可以不同,例子中的三个重名方法返回类型就各不相同。

      2.不能只改变返回类型。如果只有返回类型不同,但是参数一样,是不允许的,编译器会报错。

      3.可以更改存取权限。



     多态性允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。作用是:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。

      例如(这里仅是为了说明多态,所以类中没有定义的内容~~):

          Animal基类:

     public class Animal{

     }

     Dog类:
     public class Dog extends Animal{
      }

     Cat类:
     public class Cat extends Animal{ 
     }

     测试类:
     public class Test{
        public static void main(String args[])
        {
           Animal[] animals=new Animal[5];
           animals[0]=new Dog();
           animals[1]=new Cat();
       }
}

      在Test类中,我们首先声明了一个Animal类型的数组animals,然后使animals[0]指向Dog对象,animals[1]指向Cat对象,这就是多态的表现。

 

分享到:
评论

相关推荐

    深入浅析SQL封装、多态与重载

    SQL封装、多态与重载是面向对象编程中的核心概念,虽然标题中提到的是SQL,但在描述和标签中明确了这是关于面向对象编程的话题,而非SQL查询语言的具体内容。下面我们将详细探讨这些概念。 1. **封装**:封装是面向...

    SQL封装、多态与重载

    本文将要为您介绍的是SQL封装、多态与重载,具体实现方法:  面向对象1.类:众多对象抽象出来的2.对象:类实例化出来的  3.类的定义关键字 class  4.类里面包含成员变量成员属性 成员方法  5.面向对象三大...

    继承与多态,重载和重写

    【重载与重写】 重载(Overloading)是指在同一个作用域(通常是类)中可以有多个同名的方法,但这些方法的参数列表必须不同(参数的数量、类型或顺序不同)。当调用这个方法时,编译器根据传入的参数类型和数量来...

    C++随堂测试(继承、多态、重载)(答案).docx

    C++随堂测试(继承、多态、重载) 本资源摘要信息涵盖了C++编程语言中三个重要的概念:继承、多态和重载。通过本资源,读者可以了解到C++中继承的特点和种类、多态的实现方式、重载的规则和限制等。 1. 继承:C++...

    C++随堂测试(继承、多态、重载).docx

    C++随堂测试(继承、多态、重载) 本资源摘要信息涵盖了C++编程语言中的重要概念,包括继承、多态和重载。通过本资源,可以了解C++中的继承关系、保护继承、运算符重载、虚函数、多态性等概念,并且可以了解如何在...

    java程序设计-第5章-继承、多态、重载与接口

    Java程序设计中的继承、多态、重载与接口是面向对象编程的重要概念,它们构成了Java类体系的基础。让我们深入探讨一下这些主题。 1. **继承(Inheritance)** 继承是Java中一个核心特性,它允许一个类(子类)继承...

    C++随堂测试(继承、多态、重载)(答案).docx

    根据提供的文件标题“C++随堂测试(继承、多态、重载)(答案).docx”,我们可以推断出这份文档主要涉及的是C++编程语言中的三个核心概念:继承、多态以及重载,并且可能包含了这些问题的具体答案。下面将对这三个概念...

    重载、覆盖、多态与函数隐藏

    掌握重载、覆盖、多态与函数隐藏之间的差异和应用是编写灵活、可维护的C++代码的基础。在实际编程中,正确使用这些特性可以帮助开发者更好地管理代码的复杂性,使得代码结构清晰,易于扩展和维护。同时,正确理解...

    C#重写重载与多态

    重载与返回值类型无关,它仅根据参数列表来决定调用哪个方法。例如: ```csharp public class MyClass { public void Test(int x, int y) {} public void Test(int x, ref int y) {} public void Test(int x, ...

    java 多态重载 PPT

    多态在Java中主要体现在方法的重载(Overloading)和覆盖(Overriding)上。 1. 多态(Polymorphism) 多态的概念指的是同一种行为可以有不同的表现形式。在Java中,多态主要通过继承和接口来实现。例如,`Person`...

    多态的概念理解多态性,这个面向对象编程领域的核心概念,本身的内容博大精深,要以一文说清楚实在是不太可能。加之作者本人也还在不断学习中,水平有限。因此本文只能描一下多态的轮廓,使读者能够了解个大概。

    这意味着多态调用的函数地址直到运行时才确定,这也是多态与重载的主要区别。 多态的主要作用在于接口重用。通过接口重用,我们可以定义一组公共的函数或方法,这些函数在不同的类中有着不同的实现,但调用方式保持...

    JAVA 多态 由浅及深介绍

    此外,多态与重载的混合使用在面试中经常出现。例如,类`A`中定义了两个`show`方法,分别接受`D`和`A`类型的参数,而类`B`继承自`A`并重写了`show(D)`方法。此时,如果有一个`B`类型的对象`b`,并使用`A`类型的引用...

    Java语言中的 覆盖重载和多态

    **重载与覆盖的比较** - 覆盖不改变参数列表,而重载必须改变参数列表。 - 覆盖不能改变返回值类型,而重载可以。 - 覆盖不能有更严格的访问修饰符,但重载可以。 - 构造函数不能被覆盖,但可以被重载。 - `final`,...

    C#中多态、重载、重写区别分析

    在C#编程语言中,多态(Polymorphism)、重载(Overloading)和重写(Overriding)是面向对象编程的三个核心概念,它们分别提供了不同的功能和灵活性。下面我们将详细探讨这三个概念以及它们之间的区别。 首先,...

    java 重载,重写以及继承,多态的区别

    "java 重载,重写以及继承,多态的区别" Java 中的重载、重写、继承和多态是四个不同的概念,它们之间存在一定的关系,但也存在明显的区别。 重载(Overload) 重载是指在同一个类中可以定义多个同名的方法,但这些...

    王牌资源: “配套学习与教学”资源库.zip

    首先讲解了C++语言的基本概念、C++程序结构、常量与变量、数据类型与声明、运算符与表达式、循环与转向语句、数组、指针、函数等基础知识,还介绍了类和对象、C++的命名空间与作用域、继承与派生、多态与重载、输入...

    虚继承的代码说明(附注释)

    虚继承的代码说明(附注释)

Global site tag (gtag.js) - Google Analytics