覆盖重写注意事项
1 /* 2 方法覆盖重写的注意事项: 3 4 1. 必须保证父子类之间方法的名称相同,参数列表也相同。 5 @Override:写在方法前面,用来检测是不是有效的正确覆盖重写。 6 这个注解就算不写,只要满足要求,也是正确的方法覆盖重写。 7 8 2. 子类方法的返回值必须【小于等于】父类方法的返回值范围。 9 小扩展提示:java.lang.Object类是所有类的公共最高父类(祖宗类),java.lang.String就是Object的子类。 10 11 3. 子类方法的权限必须【大于等于】父类方法的权限修饰符。 12 小扩展提示:public > protected > (default)(什么都不写,空) > private 13 备注:(default)不是关键字default,而是什么都不写,留空。 14 */
1 public class Fu { 2 3 public Object method() { 4 return null; 5 } 6 7 }
1 public class Zi extends Fu { 2 3 @Override 4 public String method() { 5 return null; 6 } 7 8 }
方法覆盖重写
1
旧手机(父类)
public class Phone { 2 public void call() { 3 System.out.println("打电话"); 4 } 5 6 public void send() { 7 System.out.println("发短信"); 8 } 9 10 public void show() { 11 System.out.println("显示号码"); 12 } 13 }
1
新手机(子类)第一种
public class NewPhone extends Phone{ 2 @Override 3 public void show(){ 4 //System.out.println("显示号码"); 5 System.out.println("显示姓名"); 6 System.out.println("显示头像"); 7 } 8 9 }
1
新手机(子类)第二种
// 定义一个新手机,使用老手机作为父类 2 public class NewPhone extends Phone { 3 4 @Override 5 public void show() { 6 super.show(); // 把父类的show方法拿过来重复利用 7 // 自己子类再来添加更多内容 8 System.out.println("显示姓名"); 9 System.out.println("显示头像"); 10 } 11 }
1
运行一下
public class Demo01Phone { 2 public static void main(String[] args){ 9 NewPhone phone1=new NewPhone(); 10 phone1.call(); 11 phone1.send(); 12 phone1.show(); 13 } 14 15 }
1 /* 2 第一种结果: 3 4 打电话 5 发短信 6 显示姓名 7 显示头像 8 9 第二种结果: 10 11 打电话 12 发短信 13 显示号码 14 显示姓名 15 显示头像 16 */
浙公网安备 33010602011771号