方法重写的应用
当子类需要父类的功能,而功能的主体子类还有自己特有的内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类自己特有的内容。
1 /* 2 方法重写:子类中出现了和父类中方法声明一模一样的方法(方法名、参数列表和返回值类型都一样),也被称为方法覆盖、方法复写。 3 4 方法重载:本类中出现的方法名一样,参数列表不同,与返回值无关的方法。 5 6 子类的成员方法名称和父类中的成员方法名称一样时,这个怎么访问呢? 7 通过子类对象访问一个成员方法的查找顺序: 8 1.在子类的成员方法中找,有就使用。 9 2.在父类的成员方法中找,有就使用。 10 3.都找不到,就报错。 11 12 方法重写的应用: 13 当子类需要父类的功能,而功能的主体子类还有自己特有的内容时,可以重写父类中的方法, 14 这样,即沿袭了父类的功能,又定义了子类自己特有的内容。 15 16 案例: 17 A:定义一个手机类。 18 B:通过研究,我发明了一个新手机,这个手机的作用是在打完电话后,可以听天气预报。 19 按照我们基本的设计,我们把代码给写出来了。 20 但是呢?我们又发现新手机应该是手机,所以,它应该继承自手机。 21 其实这个时候的设计,并不是最好的。 22 因为手机打电话功能,是手机本身就具备的最基本的功能。 23 所以,我的新手机是不用在提供这个功能的。子类注释掉打电话的功能, 24 但是,这个时候,打电话功能就没有了。这个不好。 25 最终,还是要加上这个功能。 26 由于它继承了手机类,所以,我们就直接使用父类的功能即可。 27 那么,如何使用父类的功能呢?通过super关键字调用即可。 28 */ 29 30 class Phone { 31 public void call(String name) { 32 System.out.println("给"+name+"打电话"); 33 } 34 } 35 36 class NewPhone extends Phone { 37 public void call(String name) { 38 //System.out.println("给"+name+"打电话"); 39 super.call(name);//继承父类的功能 40 System.out.println("可以听天气预报了");//子类自己特有的功能。 41 } 42 } 43 44 class ExtendsDemo9 { 45 public static void main(String[] args) { 46 NewPhone np = new NewPhone(); 47 np.call("林青霞"); 48 } 49 }
原文地址:https://www.cnblogs.com/chenmingjun/p/8449533.html
时间: 2024-11-07 02:34:52