目录
子类中出现了和父类一模一样的方法
当子类需要父类的功能,而功能主体中,子类有自己独特的内容,就可以通过重写父类中的方法,这样即延续了父类的功能,又定义了自己的特有内容
@Override
是一个注解,可以帮我们检查重写方法声明的正确性
Phone.java
- package com.面向对象.Demo9;
-
- public class Phone {
- /**
- * 方法的重写
- * @param name 用什么手机拨打电话
- */
- public void call(String name) {
- System.out.println("父类:"+name + ",手机在拨打电话");
- }
- }
NewPhone.java
- package com.面向对象.Demo9;
-
- public class NewPhone extends Phone {
- /**
- * 什么是方法重写呢?
- * 在父类中定义的方法 子类中 实现了重写
- * 父类中和子类中出现了一样的方法声明
- * 延续父类的功能,实现扩展
- * @param name 用什么手机拨打电话
- */
- @Override
- public void call(String name){
- System.out.println("子类: call方法,NewPhone:"+name+" 是可以支持 视频通话");
- super.call("xiaomi");
- }
- /**
- * 方法重写-注意事项
- * 方法的 方法名称(参数列表)必须与 父类中的保持一致
- */
- }
NewPhoneDemo.java
- package com.面向对象.Demo9;
-
- public class NewPhoneDemo {
- public static void main(String[] args) {
- NewPhone newPhone = new NewPhone();
- newPhone.call("iPhone"); // 子类: call方法,NewPhone:iPhone 是可以支持 视频通话
- //父类:xiaomi,手机在拨打电话
- }
- }
这部分内容属于权限修饰符
- (子类的方法不能被重写)父类中私有方法,子类不能被继承
- 子类方法访问权限不能比父类低(public > protected > default > private)
Parent.java
- package com.面向对象.Demo12;
-
- public class Parent {
- public void a1(){}
- private void a2(){}
-
- public void a4(){}
- void a5(){}
- protected void a6(){}
- }
Student.java
- package com.面向对象.Demo12;
-
- public class Student extends Parent {
- /**
- * 方法重写的注意事项
- * 1.父类中的私有方法 子类是无法重写的。=>父类中私有方法,子类不能被继承
- * 2.子类方法访问权限不能比父类低(public > protected > default > private)
- */
- @Override
- public void a1() {}
-
- // @Override // 报错,父类中的私有方法 子类是无法重写的,下面这个方法无法重写父类的a2()
- public void a2() {}
-
- // @Override // 报错,父类没有a3()
- public void a3() {}
-
- // @Override
- // private void a4() {} //报错,∵父类是public (public > protected > default > private)
-
- @Override
- public void a5() {}
-
- @Override
- protected void a6() {} //访问a6(),只能用public,protected
- }
下一篇文章:权限修饰符