`

java的多态、重载、构造函数、析构函数的理解

    博客分类:
  • JAVA
 
阅读更多

一、多态性

多态有3个条件 
1:继承 
2:重写(重写父类继承的方法) 
3:父类引用指向字类对象

实例如下:
interface  Parent 

        String  method(); 
}

class  Child1  implements  Parent 

        public  String  method() 
        { 
                return  "Child1 "; 
        } 
}

class  Child2  implements  Parent 

        public  String  method() 
        { 
                return  "Child2 "; 
        } 
}

public  class  Test 

        public  static  void  main(String[]  args) 
        { 
                Parent  parent  =  new  Child1(); 
                System.out.println(parent.method()); 
                parent  =  new  Child2();    
                System.out.println(parent.method()); 
        } 
}

输出结果: 
Child1 
Child2

只有多个子类从一个父类继承或实现一个接口。  在建立这些子类实例时,都用父类或接口做为变量类型,如上例中的parent。也就

是说,用户对应的接口都是一个Parent。而由于new后面的子类不同,而产生调用同一个方法method返回不同结果的显现叫多态。就

是同一个方法在使用不同子类时有不同的表现(在这里是不同的返回值)。

二、重载

重载是同一个方法名(包括构造函数)的多种不同实现

所谓的不同实现,是指参数的个数或类型的不同,返回类型可同也可不同

三、构造函数

在创建对象时初始化成员变量,开辟内存空间,方法名与类名完全相同

四、析构函数

在使用完对象之后用来销毁,同时释放空间,隐式调用命名方法是构造函数前加一个波浪线

转自:http://blog.163.com/xiexueyong1987@126/blog/static/1262673422009966284294/

分享到:
评论

相关推荐

    c++基础语法:构造函数与析构函数

    如果基类的析构函数是虚函数(使用`virtual`关键字声明),那么在多态上下文中,即使通过基类指针删除派生类对象,也会正确调用所有层次的析构函数。如果不声明为虚析构函数,只有基类的析构函数会被调用,这可能...

    多态和虚函数[参照].pdf

    4. 构造函数不能是虚函数,但析构函数可以,并且通常应该声明为虚函数。这样在删除基类指针指向的子类对象时,能够正确调用子类的析构函数,避免内存泄漏。 向上类型转换(upcasting)是指将子类对象的指针或引用...

    网二维数组的动态创建和释放.pdf 网负号重载(1).pdf 网负号重载pdf 赋值号“==“重载(1).pdf 赋值号"==

    构造函数可以调用虚函数吗, 析构函数可... 后置加加(1).pdf 后置加加.pdf 网将模板声明为友元.pdf @静态数据成员(1).pdf 静态数据成员.pdf 拷贝构造函数.pdf 类的继承.pdf 类的组合.pdf 模板.pdf 模板的特化(具体化)...

    C++程序设计第9章类和对象.ppt

    C++程序设计第9章类和对象 本章主要讲解了类和对象的概念、定义和使用方法。通过本章的学习,读者将理解类和对象的概念,掌握类和对象的定义...同时,读者还了解了构造函数、析构函数和this 指针的概念和使用方法。

    C++高级参考手册,讲解C++ 语法,函数重载,构造函数等

    构造函数用于初始化对象,而析构函数用于清理对象。构造函数可以自定义,允许在创建对象时执行特定操作,而析构函数则在对象消亡前执行必要的清理工作。 5. **函数重载**:函数重载允许在同一作用域内定义多个同名...

    C++程序设计,主要为C++语言简介、面向对象的基本概念、类和对象进阶、运算符重载、类的继承与派生、多态与虚函数等章节总结

    类可以有构造函数(用于初始化对象),析构函数(用于清理资源),以及友元(非成员函数可以访问类的私有和保护成员)。 7. **运算符重载**:C++允许重载运算符,以便为自定义类型赋予自然的运算符行为,如 `+`,`-...

    面试总结1

    与构造函数类似,析构函数没有返回类型,但它是无参的。 在多态环境中,如果基类的析构函数不是虚函数,那么问题就出现了。当使用基类指针指向派生类对象并尝试销毁它时,编译器只会调用基类的析构函数,而不会调用...

    c/c++面试题(一些常出的面试题,包括多态,继承,函数参数等常考的内容)

    此外,面试官可能还会询问关于构造函数和析构函数的理解,如何使用虚析构函数处理多态对象的销毁,以及如何使用C++的模板、STL(标准模板库)、异常处理等高级特性。这些都要求面试者具备扎实的C++基础和实践经验。 ...

    C++复习题及参考答案.pdf

    C++是一种强大的面向对象的编程语言,它包含了丰富的特性,如类、构造函数、析构函数、重载运算符、继承、多态等。以下是对题目中涉及的一些知识点的详细解释: 1. **类和成员访问权限**: - 类的定义由说明部分...

    【长春理工大学】面向对象程序设计下期末复习浏览题.pdf

    可以重载构造函数以支持不同参数的构造。析构函数负责在对象生命周期结束时进行清理工作,如释放资源。析构函数不能被重载,且在C++中是唯一的,无参数。 3. **运算符重载**:运算符重载使得可以为自定义类型定义...

    effective c++笔记1

    涵盖了C++语言的多个方面,包括构造函数、拷贝构造函数、拷贝赋值函数、const关键字、enum、inline函数、定义域、static变量、初始化、编译器生成的函数、拷贝控制、多态基类、析构函数、虚函数、运算符重载等。...

    华东理工大学面向对象程序设计C++(新)作业及期末复习题.docx

    本资源摘要信息涵盖了面向对象程序设计C++的多个方面,包括类和对象、继承、多态、重载、运算符重载、友元函数、静态成员、构造函数、析构函数、模板编程等。 一、类和对象 * 类是对象的蓝图,描述对象的状态和...

    web ajax 的使用 js封装

    【标签】"javascript Explained js类库 类的编写与应用,构造与析构函数,函数的重载,类的继承,函数覆盖,基类与派生类的构造函数、析构函数先后调用顺序" 在JavaScript中,虽然它不是一种传统的面向对象语言,但...

    C++中的封装、继承、多态理解

    析构函数的调用顺序与构造函数相反。 多态是面向对象的高级特性,它允许不同类型的对象对同一消息作出响应。在C++中,通过虚函数实现多态。虚函数使得子类可以重写父类的功能,提供自己的实现。多态有两种主要形式...

    C++多态练习题.pdf

    当通过基类指针删除派生类对象时,如果没有声明虚析构函数,只会调用基类的析构函数,而派生类的析构函数不会被调用,这可能导致资源未被正确释放。而有了虚析构函数,就可以确保通过基类指针调用到正确的析构函数,...

    2015-2016学年第2学期西南交大面向对象程序设计主观题作业.pdf

    6. 构造函数与析构函数:类对象创建时,系统会自动调用构造函数初始化对象;对象生命周期结束时,系统会调用析构函数清理资源。 7. 数组初始化:当声明一个类类型的数组,如AB a[9],系统会为每个数组元素调用一次...

    C题3++面试[参照].pdf

    - `new` 在分配内存后会调用构造函数,`delete` 在释放内存前会调用析构函数。 - `malloc` 和 `free` 不会调用对象的构造或析构函数,因此不适合处理包含非内部数据类型的对象。 2. **delete 和 delete[] 的区别*...

    c++多态性与虚函数习题答案 (2).docx

    析构函数在C++中可以声明为虚函数,这是非常重要的,因为当使用基类指针删除派生类对象时,如果没有声明虚析构函数,析构函数只会调用基类的版本,导致派生类的资源可能无法正确释放。而构造函数不能声明为虚函数,...

    c++复习资料大全 指针多态 函数 继承类等

    在C++的继承和类设计方面,你需要理解单一继承、多重继承、继承层次结构、访问控制(public、private、protected)、构造函数与析构函数的使用,以及覆盖(override)和隐藏(hiding)的概念。同时,掌握封装和抽象...

Global site tag (gtag.js) - Google Analytics