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

原创 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语句后面不能跟任何语句,因为执行不到



更多待补充.....




相关文章推荐

leetcode 654. Maximum Binary Tree

1.题目Given an integer array with no duplicates. A maximum tree building on this array is defined as f...

Python range和xrange

在python中,range和xrange经常在for循环中用到,可以生成一个等差数列用法: range([start,] stop[, step]) xrange([start,] sto...

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

Java基础笔记 – 面向对象三个特征 继承、封装、多态及编程细节提示     面向对象三个特性:继续(Inheritence)、封装(Encapsulation)、多态(Polymo...

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

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

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

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

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

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

动物练习.NET面向对象继承多态

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

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