java 重载和重写区别
来源:互联网 发布:linux mutex 实现原理 编辑:程序博客网 时间:2024/05/18 09:06
重载改变的是参数个数,参数的类型但不改变参数的顺序,与返回值无关
例如
1.public void get(){}
2.public void get(int a){}//参数个数不同
3.public void get(int a,int b)//参数个数不同
4.public void get(int a,double b){}//参数个数和参数类型
5.public int get(int a,double b){}//返回值类型为int不同,不为4的重载,但为1,2,3的重载
下面为继承重载
public class A {
public int getA()
{
return 4;
}
}
public class B extends A {
public int getA(int a)
{
return a;
}
public static void main(String[] args) {
A a=new A();
System.out.println(a.getA());
B b=new B();
System.out.println(b.getA());
}
}
重写与继承相关
重写必须与父类方法一致,包括返回值类型,类型,参数,,子类和父类方法除了返回值大小不同,其他的一模一样
例子如下
public class A {
public int getA()
{
return 4;
}
}
public class B extends A {
public int getA()
{
return 5;
}
public static void main(String[] args) {
A a=new A();
System.out.println(a.getA());
B b=new B();
System.out.println(b.getA());
}
}
输出5,4
总结
父类调用父类的方法
子类调用子类覆盖父类的方法
如果没有覆盖
则调用父类的方法
返回值或者参数列表不同则不为重写
附:重写要注意权限问题.
2,向上转型复写问题
向上转型
public class A {
public int getA()
{
return 4;
}
}
public class B extends A {
public int getA()
{
return 5;
}
public static void main(String[] args) {
A a=new B();
System.out.println(a.getA());
}
}
子类向上转型,父类引用指向子类对象,调用子类复写父类的方法
如果子类不复写父类的方法,则调用父类的方法,子类扩展的所有方法丢失
- java 重载和重写区别
- Java中重载和重写的区别
- Java中重载和重写的区别
- Java中重载和重写的区别
- Java中重载和重写的区别
- Java中重载和重写的区别
- Java中重载和重写的区别
- Java中重载和重写的区别
- Java中重载和重写的区别
- Java中重载和重写的区别
- Java中重载和重写的区别
- java中重写和重载的区别
- Java中重载和重写的区别
- Java中重载和重写的区别
- Java中重载和重写的区别
- Java中重载和重写的区别
- Java中重载和重写区别
- Java中重载和重写的区别
- 解決 SQL Server 檢視表 (Views) 無法匯入 EDMX 的問題
- Hibernate_1_环境的配置
- Linux环境变量的设置和查看方法
- more/less/head/tail
- 精通css(3) 盒模型,定位,浮动
- java 重载和重写区别
- CURL实现HTTP的GET POST方法
- 三极管电阻计算以及旁路电路的选择
- linux:less、more命令
- C语言——结构体、局部变量和全局变量、枚举
- GNU ARM 汇编指令
- MySQL备份与恢复之逻辑备份
- Ural 1613 For Fans of Statistics(vector应用)
- 精通css(4)bug和修复bug