Java学习8:封装特性之方法的重写(Override)详解及实例说明
2017-11-23 17:52
615 查看
重写是封装的特性之一。
在子类中可以根据需要对基类中继承来的方法进行重写。
重载和重写没有任何关系。
作用:通过重写,子类既可以继承父类的东西,又可以灵活的扩充。
重写方法必须和被重写方法具有相同方法名称、参数列表和返回值类型。
重写方法不能使用比被重写方法更严格的访问权限。(由于多态)
下面我们通过代码进行说明:
假如,鸟类在eat的时候,需要输出jiujiujiu。可通过如下代码实现:
这样我们就可以实现扩展我们的父类方法。
关于@Override是注解,用于限定的方法必须override父类的方法,否则编译不通过。这里先不讨论。
则我们在通过Bird实例调用eat方法时,是调用的重写后的方法。
哪之前的父类的方法呢?其实还存在,我们可以在子类通过super进行调用。如下:
下面我们创建一个测试类,进行测试输出结果:
结果如下:
1.概述
方法的重写(override)是封装的特性之一。在子类中可以根据需要对基类中继承来的方法进行重写。
重载和重写没有任何关系。
作用:通过重写,子类既可以继承父类的东西,又可以灵活的扩充。
1.1特点
在子类中可以根据需要对基类中继承来的方法进行重写。重写方法必须和被重写方法具有相同方法名称、参数列表和返回值类型。
重写方法不能使用比被重写方法更严格的访问权限。(由于多态)
1.2实例说明
在上一节:继承详解及用法中,提到如果子类继承的父类方法不完全是我们所希望的方法,可以通过重写进行实现。下面我们通过代码进行说明:
public class Animal { String name; void eat() { System.out.println("have a good dinner"); } } class Birds extends Animal { void fly() { System.out.println("Yeah,I can fly~~"); } }
假如,鸟类在eat的时候,需要输出jiujiujiu。可通过如下代码实现:
class Birds extends Animal { @Override void eat() { System.out.println("jiujiujiu"); } void fly() { System.out.println("Yeah,I can fly~~"); } }
这样我们就可以实现扩展我们的父类方法。
关于@Override是注解,用于限定的方法必须override父类的方法,否则编译不通过。这里先不讨论。
则我们在通过Bird实例调用eat方法时,是调用的重写后的方法。
哪之前的父类的方法呢?其实还存在,我们可以在子类通过super进行调用。如下:
class Birds extends Animal { @Override void eat() { super.eat(); // 调用父类的方法 System.out.println("----------------------------------------"); // 分隔线 System.out.println("jiujiujiu"); } void fly() { System.out.println("Yeah,I can fly~~"); } }
下面我们创建一个测试类,进行测试输出结果:
class Test { public static void main(String[] args) { Birds b = new Birds(); b.eat(); } }
结果如下:
have a good dinner ---------------------------------------- jiujiujiu
相关文章推荐
- Java学习4:方法的重载(Overload)详解及实例说明
- java学习之路 之 高级类特性1-面向对象特征之二:继承及方法重写(override)
- C#关于虚方法和重写的实例说明(virtual 和override)
- java方法重写和super关键字实例详解
- 学习总结:java面试方法重写详解,静态代码块和构造方法执行顺序问题
- 黑马程序员——Java学习笔记--方法的重载(Overload)与重写(Override)
- Java8新特性学习-Stream的Reduce及Collect方法详解
- java 重载(overload)与重写(override)详解及实例
- Java 通过JDBC连接Mysql数据库的方法和实例【图文说明】
- java学习笔记九——构造函数、方法重写、重载
- 关于java方法的重载(Overloading),覆写(Override)以及final 方法的几点说明
- 关于java方法的重载(Overloading),覆写(Override)以及final 方法的几点说明
- Java 的swing.GroupLayout布局管理器的使用方法和实例【图文说明】
- Java重写方法典型实例
- 学习java多线程的笔记1--Thread(Runnable t)与重写run()方法等
- java方法的重载(Overload)与重写(Override)
- C# 语言特性系列(5) 深入理解重写方法 override
- java方法的重载(Overload)与重写(Override)
- java 浮点数表示详解及解决方法(实例函数)
- Ext学习笔记02 - 构造方法,类继承,类实例方法重写