Java的继承和方法重写都需要注意什么?哪些地方容易错?
展开全部
继承注意实现所有的抽象类 私有或静态成员 构造函数 不能继承 继承实现或重写父类方法不能 缩小父类访问符 冲写方法注意参数 函数 返回值不能错 等等 还有其他注意的地方 得自己练习
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
初始化顺序的问题,b
bb
=
new
b(4);这句在执行的时候首先会调用父类的构造方法,然后就是调用test()方法,而子类是覆盖了父类的test()方法的,所以是调用子类的test()方法,而在调用父类的构造方法是,子类k值还未确定,虚拟机会首先会把k初始化为零,所以开始输出的是kkkkkkkk=0,然后调用子类的构造方法,而此时k值已经赋值为15,所以输出的是kkkkkkkk=15
,我想大概就是这样的
bb
=
new
b(4);这句在执行的时候首先会调用父类的构造方法,然后就是调用test()方法,而子类是覆盖了父类的test()方法的,所以是调用子类的test()方法,而在调用父类的构造方法是,子类k值还未确定,虚拟机会首先会把k初始化为零,所以开始输出的是kkkkkkkk=0,然后调用子类的构造方法,而此时k值已经赋值为15,所以输出的是kkkkkkkk=15
,我想大概就是这样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
重写方法的规则:
1、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。
2、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。
3、访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
4、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。例如:
父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常。
而重载的规则:
1、必须具有不同的参数列表;
2、可以有不责骂的返回类型,只要参数列表不同就可以了;
3、可以有不同的访问修饰符;
4、可以抛出不同的异常;
重写与重载的区别在于:
重写多态性起作用,对调用被重载过的方法可以大大减少代码的输入量,同一个方法名只要往里面传递不同的参数就可以拥有不同的功能或返回值。
用好重写和重载可以设计一个结构清晰而简洁的类,可以说重写和重载在编写代码过程中的作用非同一般.
1、参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。
2、返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。
3、访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
4、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。例如:
父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常。
而重载的规则:
1、必须具有不同的参数列表;
2、可以有不责骂的返回类型,只要参数列表不同就可以了;
3、可以有不同的访问修饰符;
4、可以抛出不同的异常;
重写与重载的区别在于:
重写多态性起作用,对调用被重载过的方法可以大大减少代码的输入量,同一个方法名只要往里面传递不同的参数就可以拥有不同的功能或返回值。
用好重写和重载可以设计一个结构清晰而简洁的类,可以说重写和重载在编写代码过程中的作用非同一般.
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
语法上的错,eclipse会提示你的。
逻辑上的问题,要自己测试才知道了。
逻辑上的问题,要自己测试才知道了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询