Java基础之方法的重写
2017-07-29 20:59
183 查看
面试中经常考到方法的重写,这里需要遵循两同,两小,一大的原则。
两同:方法名和参数一样(包括参数类型和参数个数)
两小:抛出的异常比父类小,返回值比父类小。这里有一个误区:假如是基本数据类型或者他们的封装类型,是必须一样的。
class B {
public int b(){
System.out.println("b");
return 2;
}
}
public class A extends B{
@Override
public int b(){
System.out.println("a");
return 1;
}
public static void main(String[] args){
B a=new A();
a.b();
}
}但如果是对象,子类的返回值可以是父类的返回值的子类。
class B {
public B b(){
System.out.println("b");
return new B();
}
}
public class A extends B{
@Override
public A b(){
System.out.println("a");
return new A();
}
public static void main(String[] args){
B a=new A();
a.b();
}
}一大:访问符比父类要大。public>private
两同:方法名和参数一样(包括参数类型和参数个数)
两小:抛出的异常比父类小,返回值比父类小。这里有一个误区:假如是基本数据类型或者他们的封装类型,是必须一样的。
class B {
public int b(){
System.out.println("b");
return 2;
}
}
public class A extends B{
@Override
public int b(){
System.out.println("a");
return 1;
}
public static void main(String[] args){
B a=new A();
a.b();
}
}但如果是对象,子类的返回值可以是父类的返回值的子类。
class B {
public B b(){
System.out.println("b");
return new B();
}
}
public class A extends B{
@Override
public A b(){
System.out.println("a");
return new A();
}
public static void main(String[] args){
B a=new A();
a.b();
}
}一大:访问符比父类要大。public>private
相关文章推荐
- Java 基础___关于重写的方法的异常
- Java基础_方法重写
- 2.24 Java基础总结 ①for-each循环②继承概念③全类名④方法重写
- 【Java基础之重写equals、hashCode和compareTo方法】什么时候需要重写重写equals方法?为什么重写equals方法,一定要重写HashCode方法?
- java基础(八)Math/代码块/继承成员方法指南的关系/继承中成员变量之间的关系/方法的重写/继承中构造方法之间的关系/this和super的区别
- 【Java基础之多态中静态方法重写问题】java中静态方法的重写问题详解
- Java基础重温(六)子类与父类实例方法、静态方法的重写问题
- JAVA基础知识点(四)--super,方法重写,instanceof
- java语言基础(34)——面向对象(方法重写)
- java面向对象基础 -- 重写父类方法的规则
- Java基础——方法的重载和重写的区别与分析
- JAVA面向对象基础:继承、变量隐藏、方法重写、包、修饰符、this、super
- Java基础-重写方法
- Java基础回顾Object类的方法重写
- java基础—Objcet中的equals方法重写
- Java基础-重写System.out.println方法
- JAVA基础之方法重写
- java基础之三大特性 类的继承和方法重写
- java 基础重写string类的几个比较重要的方法(replaceAll 和split)
- Java基础学习15 (子类对父类中方法的重写)