面向对象__阶段总结__【覆盖与重载的区别】【继承,多态的一些细节】

原创 2013年12月03日 10:43:50



函数覆盖和重载区别:

      1重载同一个类中Overload      条件:函数名相同,参数列表必须不同,对返回值无要求

       2覆盖子类中Override           条件:函数名称与参数列表和返回值完全相同

注意事项:

1,子类方法覆盖父类方法时,子类权限必须要大于等于父类的权限

2静态只能覆盖静态,或被静态覆盖。

3.重载时如果子父类中函数名称相同,仅仅是返回值则不同绝不允许重载(编译报错,调用的不确定性)。因为重载是基于函数参数区别;

4.覆盖时函数的声明必须完全相同,包括返回值也必须一致。

①如果子父类函数名称相同而参数列表不同,则该方法就成了子类特有方法,不存在覆盖

②如果子父类函数名称和参数列表都相同返回值不同,编译不通过

如图:int show(int a)

            子 short show(int a)

上图②这种情况出现在子父类中


这种情况如果出现在同一个类中就会出现调用的不确定性,不能实现重载,编译也会报错

int show(int a)

short show (int a)



子类覆盖父类方法时,只能抛出比父类更少的异常。或者是抛出父类异常的子异常,因为子类可以解决父类的一些问题不能比父类有更多的异常,子类访问权限只能比父类大,不能更小。

被覆盖的方法不能为private如果父类方法是private型,则子类不存在覆盖,相当于子类增加了一个新的特有方法,编译会报错!

private int show(int a)

子int show (int a)




多态时要注意的问题

父类类型的子类对象 不能访问子类中特有方法,可以通过覆盖来访问子类中子父类共有方法

多态时成员的特点

成员函数编译时看左边;运行时看右边

成员变量编译时和运行时都看左边


非静态内部类中不能定义静态成员,如果内部类定义了静态成员,该内部类必须被静态修饰


常用set(),get()的意义,this.x=x;将局部变量转化为成员变量,封装成对象在堆内存中,延长生命周期,

 

继承时一定要注意子类构造函数中第一行隐藏的super()父类构造函数

子类构造函数第一行一定是调用父类构造函数,不声明就默认调用了父类空参的构造函数。父类构造函数被复写为有参数,空参的构造函数super()就被隐藏了。如果子类构造函数中没有super(参数) 声明调用父类构造函数,就会编译失败。所以编程时建议应保留父类空参构造函数


多catch时父类异常一定要放在最下面

throw语句后面不能跟任何语句,因为执行不到



更多待补充.....




java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍

java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍,this,super,构造方法的使用介绍...
  • qq_22118507
  • qq_22118507
  • 2016年05月16日 09:45
  • 7345

java中的继承和多态以及重载和重写

继承(inheritance) 简单的说,继承就是在一个现有类型的基础上,通过增加新的方法或者重定义已有方法(下面会讲到,这种方式叫重写)的方式,产生一个新的类型。继承是面向对象的三个基本特征--封...
  • ls5718
  • ls5718
  • 2016年06月02日 10:19
  • 2868

C++(包括c语言基础、数据类型、函数、指针、面向对象、类与对象、多态继承、重载等等)

  • 2010年11月10日 14:32
  • 7.58MB
  • 下载

Java基础笔记 – 面向对象三个特征 继承、封装、多态及编程细节提示

Java基础笔记 – 面向对象三个特征 继承、封装、多态及编程细节提示     面向对象三个特性:继续(Inheritence)、封装(Encapsulation)、多态(Polymo...
  • xlx921027
  • xlx921027
  • 2013年12月15日 21:05
  • 440

面向对象的几大特性;多态(重载和覆盖)

1)面向对象有哪些特征呢? 一般来说,面向对象有三大特性,封装、继承和多态。其实按理说还应该有一个:抽象。 ①封装:封装是指将客观事物抽象成类,每个类对自身的数据和方法实行保护。类可以把自己的数据...
  • x_i_xw
  • x_i_xw
  • 2018年01月04日 21:51
  • 14

Day2 面向对象(封装·继承·多态·重载·重写)

封装:封装,我理解的字面意思理解就是用东西将一个重要的东西包装起来,让有权利接触此东西的人可以接触到,让没权利的,接触不到,这就是封装的字面意思,而java中的封装呢?差不多也就是这个意思,对一个类使...
  • l764606
  • l764606
  • 2017年06月14日 09:22
  • 111

面向对象程序设计—重载、继承、多态和聚合

  • 2012年11月17日 21:14
  • 706KB
  • 下载

第六讲 面向对象之四__重载与多态

第六讲 面向对象之四__重载与多态 课题名称第六讲 面向对象之四____重载与多态教学提示本讲介绍Java程序实现多态的主要手段———重载。结合继承和多态,还介绍了构造函数的继承与重载,以及接口的实现...
  • renxingxingge
  • renxingxingge
  • 2011年04月24日 20:45
  • 722

1.为什么需要继承?如何继承?继承到什么? 2.方法的重载与重写的区别 3.类型的自动转换和强制转换 4.子类特有的方法的调用规则 5.子类重写的方法的调用规则 6.多态的理解 7.面向对象的三大特征

注:自己总结的,可能有些不足,但第一次上Java课,有错希望可以帮忙指出,感激不尽 1.继承的概念?为什么需要继承?如何继承?继承到什么? 继承的概念? 可以基于已经存在的类构造一个新类。继承已...
  • chenjuan0530
  • chenjuan0530
  • 2017年01月05日 13:33
  • 471

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

  • 2009年03月16日 12:37
  • 28KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面向对象__阶段总结__【覆盖与重载的区别】【继承,多态的一些细节】
举报原因:
原因补充:

(最多只允许输入30个字)