Java-方法重写、重写与重载的区别
2017-09-14 21:27
417 查看
方法重写
规则:
在继承关系的子类中
重写的方法名,参数,返回值类型必须与父类相同
私有方法不能继承因而也无法重写
访问修饰符不能比父类更严格
方法重写的意义是实现多态
方法重写的默认行为是调用父类方法内容
作用:可以在子类中修改父类的方法内容
@Override//重写 以@开头的标识符叫注解
父类
public class A {
/**
* 重载:同一个类中,方法名相同,参数列表不同
*/
protected void test() {}
private int test(int a){
return 0;
}
private int test(double a){
return 0;
}
public int sum(int a,int b){
return 0;
}
public void set(A a) {
a.test();
System.out.println(a.sum(1, 2));
}
}
子类
public class B extends A{
/**
* 重写:在有继承关系的子类中,方法名相同,
* 参数列表一致,返回值一致,
* 访问修饰符不能比父类更严格
*/
protected void test() {
// TODO Auto-generated method stub
System.out.println("这是b方法");
}
@Override
public int sum(int a, int b) {
// TODO Auto-generated method stub
return a+b;
}
/**
* 方法重写的意义是实现多态
* @param args
*/
public static void main(String[] args) {
B b=new B();
A a=new A();
C c=new C();
// a.set(a);
a.set(b);
}
}
规则:
在继承关系的子类中
重写的方法名,参数,返回值类型必须与父类相同
私有方法不能继承因而也无法重写
访问修饰符不能比父类更严格
方法重写的意义是实现多态
方法重写的默认行为是调用父类方法内容
作用:可以在子类中修改父类的方法内容
@Override//重写 以@开头的标识符叫注解
父类
public class A {
/**
* 重载:同一个类中,方法名相同,参数列表不同
*/
protected void test() {}
private int test(int a){
return 0;
}
private int test(double a){
return 0;
}
public int sum(int a,int b){
return 0;
}
public void set(A a) {
a.test();
System.out.println(a.sum(1, 2));
}
}
子类
public class B extends A{
/**
* 重写:在有继承关系的子类中,方法名相同,
* 参数列表一致,返回值一致,
* 访问修饰符不能比父类更严格
*/
protected void test() {
// TODO Auto-generated method stub
System.out.println("这是b方法");
}
@Override
public int sum(int a, int b) {
// TODO Auto-generated method stub
return a+b;
}
/**
* 方法重写的意义是实现多态
* @param args
*/
public static void main(String[] args) {
B b=new B();
A a=new A();
C c=new C();
// a.set(a);
a.set(b);
}
}
相关文章推荐
- 简单的java实验,涉及到 类继承以及接口问题,方法体的重写(区别于重载)
- java中方法的重载与重写的区别
- Java 重写与重载区别 Java父类的Object方法 要重写tostring原因,多个catch处理逻辑
- java———方法的重载与重写的区别
- Java中方法的重载与重写的区别
- java中方法的重写(overriding)与重载(overloading)的区别
- java中方法的重载与重写的区别
- Java 方法重写与重载的区别
- 【Java】方法重载和方法重写的区别
- Java 重写与重载方法与区别详解
- java学习中重写与重载方法的区别(转自:小鸟的天空)
- Java中方法重载和方法重写区别
- java里面的方法重写和重载的区别
- java面向对象中的方法重载与方法重写的区别
- java学习中重写与重载方法的区别(转自:小鸟的天空)
- Java中方法的重载与重写的区别
- JAVA方法重载与重写的区别
- 专业做笔记24h之Java入门总结(方法重载与方法重写的区别)
- Java中方法重载和方法重写的区别
- java中方法的重载与重写的区别