java基础_子父类中的函数

package java_test;
/*
 * 当子类中出现和父类中一样的函数时,当子类的对象调用该函数,运行的是子类中的函数,如同父类中的函数被覆盖了一样,
 * 这种情况就是函数重的另一种特性:重写(覆盖)
 * 
 * 注意:
 * 1.子类覆盖父类时必须保证子类中的方法权限大于等于父类,才可以覆盖,否则报错
 * 访问权限修饰符:public >default >private(本类才能访问) 成员前面没加任何访问权限修饰符,修饰符默认权限就是default
 *2.静态的函数只能覆盖静态的 
 *记住:重载:只看同名的方法的参数列表
 *     重写:子父类中方法外部要一摸一样(方法体不一样)
 */
class Animal{
	String type;
	void run(){
		System.out.println("跑步中");
	}
}

class Cats extends Animal{
	
}

class Dog extends Animal{
	void run(){
		type="大黄狗";
		System.out.println(type+"哼着歌跑步中");
	}
}
public class A6_48 {
	public static void main(String[] args) {
		Cats c=new Cats();
		c.run();
		Dog d=new Dog();
		d.run();//子类和父类都有这个方法,运行子类的
	}
}

 运行结果:

跑步中

大黄狗哼着歌跑步中

 

package java_test;
/*
 * 当子类中出现和父类中一样的函数时,当子类的对象调用该函数,运行的是子类中的函数,如同父类中的函数被覆盖了一样,
 * 这种情况就是函数重的另一种特性:重写(覆盖)
 * 
 * 注意:
 * 1.子类覆盖父类时必须保证子类中的方法权限大于等于父类,才可以覆盖,否则报错
 * 访问权限修饰符:public >default >private(本类才能访问) 成员前面没加任何访问权限修饰符,修饰符默认权限就是default
 *2.静态的函数只能覆盖静态的 
 *记住:重载:只看同名的方法的参数列表
 *     重写:子父类中方法外部要一摸一样(方法体不一样)
 */
class Animal{
	String name;
	void show(){
		System.out.println("我是父类");
	}
	void sleep(){
		System.out.println("动物在睡觉");
	}
}

class Cats extends Animal{
	void show(String name){//重载父类show方法
		System.out.println(name+"在睡觉");
	}
	void sleep(){//重写父类sleep方法
		System.out.println("小猫在睡觉");
	}
	
}

public class A6_48 {
	public static void main(String[] args) {
		Cats c=new Cats();
		c.show();//调用父类 shouw方法
		c.show("多多");//调用子类重载的show方法
		c.sleep();//子类和父类都有同一个方法,执行子类的 ,相当于父类被覆盖了
	}
}

  运行结果:

我是父类

多多在睡觉

小猫在睡觉

原文地址:https://www.cnblogs.com/youning/p/6774893.html