重载与重写
Posted libbo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重载与重写相关的知识,希望对你有一定的参考价值。
重载与重写的区别
---重载是指在一个类中定义多个方法名相同但参数列表不同的方法,与返回值无关。
---重写是指在子类中定义和父类完全相同的方法,在程序运行时,根据对象的类型不同而调用不同的版本。
重载
public class OverloadDemo {
public static void main(String[] args) {
Aoo o = new Aoo();
o.say();
o.say("zhangsan");
o.say(25);
o.say("zhangsan", 25);
o.say(25, "zhangsan");
}
}
class Aoo{
void say() {}
void say(String name) {}
void say(int age) {}
void say(String name,int age) {}
void say(int age,String name) {}
//int say() {return 1;} //编译错误,重载与返回值类型无关
//void say(String address) {} //编译错误,重载与参数名称无关
}
重写
public class SuperDemo {
public static void main(String[] args) {
Boo o = new Boo();
}
}
class Coo{
Coo(int a){
}
}
class Doo extends Coo{
Doo(){
super(5);
}
}
class Aoo{
Aoo(){
System.out.println("超类的无参构造方法");
}
}
class Boo extends Aoo{
Boo(){
//super(); //默认调用超类的无参构造
System.out.println("派生类的无参构造方法");
}
}
子类继承父类的方法顺序
public class test {
public static void main(String[] args) {
animal d = new dog();
d.play();
}
//父静态->子静态->父的非静态方法->父类的构造方法->子类的非静态方法->子类的构造方法->子类的重写普通方法
}
class dog extends animal{
static {
System.out.println("这是一个小狗");
}
{
System.out.println("小狗在吃饭");
}
public void play() {
System.out.println("小狗的普通方法");
}
public dog(){
System.out.println("小狗的构造方法");
}
}
class animal{
static {
System.out.println("父类动物");
}
public animal() {
System.out.println("动物的构造方法");
}
{
System.out.println("动物在吃饭");
}
public void play() {
System.out.println("动物的普通方法");
}
}
以上是关于重载与重写的主要内容,如果未能解决你的问题,请参考以下文章