重载与重写

重载与重写的区别
---重载是指在一个类中定义多个方法名相同但参数列表不同的方法,与返回值无关。
---重写是指在子类中定义和父类完全相同的方法,在程序运行时,根据对象的类型不同而调用不同的版本。
重载

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("动物的普通方法");
	}
}

posted @ 2019-01-14 20:13  Libbo-yu  阅读(134)  评论(0编辑  收藏  举报