继承中属性的隐藏和方法的覆盖
      java中规定,子类用于隐藏的变量可以和父类的访问权限不同,如果访问权限被改变,则以子类的权限为准
      java中允许子类的变量与父类变量的类型完全不同,以修改后的数据类型为准java允许父类的变量被子类的常量隐藏,也允许父类的常量被子类的变量隐藏
      java允许用实例成员变量来隐藏静态成员变量,也允许用静态成员变量来隐藏实例成员变量
覆盖
覆盖必须满足两个条件:1、方法名称必须相同 2、方法的参数必须完全相同,包括参数个数、类型、顺序
      1、访问权限不相同的情况:子类方法的访问权限可以与父类不同,但只允许权限更宽松,而不允许更严格
      2、返回值数据类型不同的情况:覆盖与被覆盖的方法的返回值数据类型必须完全相同
      3、final修饰符不同的情况:
      4、静态修饰符不同的情况:不允许出现父类方法和子类方法覆盖时的static修饰符发生变化
构造方法在覆盖时,只能是访问权限不同,只允许访问权限更宽松。java还规定,子类中无论哪个构造方法在执行时,都会先执行父类中无参数的构造方法
super只能在子类中使用,用来调用父类的成员或构造方法
子类的构造方法会自动调用父类不带参数的构造方法,但是不会调用带参数的构造方法。
如果子类确实有必要调用父类带参数的构造方法,就必须使用super关键字来实现
super使用规则:

它只能用在构造方法中,
      它只能是第一条执行语句
      一个构造方法中只能有一天super语句
java语言支持两种类型的多态性:运行时的多态性,编译时的多态性
多态性体现在两个方面:
方法重载:通常指在同一个类中,相同的方法名对应着不同的方法实现,但是方法的参数不同
成员覆盖:通常指在不同类中允许有相同的变量名,但是数据类型不同;也允许有相同的方法名,但是对应的方法实现不同
普通方法的重载
方法同名时,要求至少下面之一不同:1、参数个数不同 2、对应位置参数类型不同

 void overload(int); 1
 int overload(int,int); 2
 double overload(); 3
 int oveload(int);
 1、2、3互为重载,但1、4之间不是重载

覆盖和重载的区别 :
      重载和覆盖的方法名称都相同,但重载要求参数列表不同,而覆盖则要求参数列表完全相同
      重载对于方法前面的修饰符没有限制,而覆盖则对这些修饰符的使用有限制
      同一类中的方法能够相互重载,但不能相互覆盖。子类对父类方法既可以重载也可以覆盖
      重载时,编译器在编译期间就可以确定调用哪一个方法,而覆盖则有可能在运行期间才能确定

java系列--重载和覆盖小结的更多相关文章

  1. Java之重载与覆盖

    有的时候,类的同一种功能有多种实现方式,到底采用哪种实现方式,取决于调用者给定的参数.例如我们最常用的System.out.println()能够打印出任何数据类型的数据,它有多种实现方式.运行时,J ...

  2. java的重载、覆盖和隐藏的区别

    重载:方法名相同,但参数不同的多个同名函数 注意:1.参数不同的意思是参数类型.参数个数.参数顺序至少有一个不同 2.返回值和异常以及访问修饰符,不能作为重载的条件(因为对于匿名调用,会出现歧义,eg ...

  3. java中重载、覆盖和隐藏三者的区别分析

    重载:方法名相同,但参数不同的多个同名函数 注意:1.参数不同的意思是参数类型.参数个数.参数顺序至少有一个不同 2.返回值和异常以及访问修饰符,不能作为重载的条件(因为对于匿名调用,会出现歧义,eg ...

  4. java中重载和覆盖(又称重写)的区别

    初次见到这两个单词并没有什么特别的感觉,但是时间长了,却发现书上一会儿用override,一会儿又用overload,搞得我的迷迷糊.于是就做了个总结,希望能对和我一样对这两个概念模糊不清的网友有一个 ...

  5. java中方法的重载和覆盖

    java中方法的重载和覆盖 先来了解一下这两个名词的含义. 重载: 在一个类当中才可以重载,方法名相同,参数个数不同或参数个数相同而参数类型不同. 覆盖: 又称重写,在派生类(子类)中重写基类(父类) ...

  6. Java基础知识(重载和覆盖)

    重载(overload): 在一个类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同,即可称之为该函数重载了. 即当函数同名时,只看参数列表.和返回值类型没关系. 重 ...

  7. java中方法的重载和覆盖分别要满足的条件

    1.重载:遵循“两同三不同” 两同:同一个类中的同名方法 三不同:形参的类型,个数,顺序不同 特别提醒: 返回值不同构不能方法重载 形参名称不同构不成方法重载 2.覆盖(重写)的要求 子类方法的名称, ...

  8. Java系列笔记(5) - 线程

    我想关注这个系列博客的粉丝们都应该已经发现了,我一定是个懒虫,在这里向大家道歉了.这个系列的博客是在我工作之余写的,经常几天才写一小节,不过本着宁缺毋滥的精神,所有写的东西都是比较精炼的.这篇文章是本 ...

  9. Java:重载和重写

    Java:重载和重写 对 Java 中的 重载和重写 这个概念,做一个微不足道的小小小小结 重载 重载:编译时多态,同一个类中的同名的方法,参数列表不同,与返回值无关. 有以下几点: 方法名必须相同: ...

随机推荐

  1. HDU 2475 BOX 动态树 Link-Cut Tree

    Box Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) [Problem De ...

  2. Apache 实现ProxyPass转发URL到Tomcat并实现http自动转https【转载】

    转自 Apache 实现ProxyPass转发URL到Tomcat并实现http自动转https - OPEN 开发经验库http://www.open-open.com/lib/view/open1 ...

  3. memcache command

    http://www.cnblogs.com/jeffwongishandsome/archive/2011/11/06/2238265.html

  4. String转float

    float mTotalhour = Float.parseFloat(mTotalHourEt.getText().toString().trim());

  5. 打开一个activity,让edittext不获得焦点

      在实际开发中,有的页面用到Edittext控件,这时候进入该页面可能会自动弹出输入法,这么显示不太友好,所以需要设置一下让Edittext默认不自动获取焦点.在网上查资料解决办法如下: 在Edit ...

  6. sql语句删除由于无主键导致完全重复的数据方法

    sql语句删除由于无主键导致完全重复的数据方法 select distinct * into #Tmp from t_column drop table t_column select * into ...

  7. 进程waitpid()的用法

    代码分析: /* waitpid.c */ #include <sys/types.h> #include <sys/wait.h> #include <unistd.h ...

  8. 多个inline元素、block元素、inline-block元素在父容器中的换行情况

    1.首先看inine元素的换行情况 <style> *{padding:0;margin:0} div.wrap{width:200px;height:200px;border:1px s ...

  9. zepto学习之路--源代码提取

    最近在看zepto的源代码,把一些有用的函数摘出来,看看zepto是怎么实现的,自己做的时候也可以用.说实话,zepto的实现有一些看起来还是很晦涩的,可能是自己的水平不够,看不透作者的真正的意图. ...

  10. Hibernate---基础配置之日志信息slf 及搭建日志环境

    slf日志接口, 实现有slf4j nodep, log4j hibernate里我们一般用 log4j,所以删除之前创建的hibernate 包里的 slf4j-nop包, 加入log4j-1.2. ...