在Java编程中,什么时候该使用覆盖函数操作呢,很多人都知道有覆盖操作,但是到底什么时候该使用覆盖操作,还是有一些模糊的感觉,以下就举例来用代码分析就明白了, 举例生活中的案例,模拟制造手机的公司;
公司最早生产的第一台手机 01版本,只具备显示电话号码功能
package com.oop;
/**
* Java什么时候该使用覆盖操作
* @author Liudeli
*
*/
/**
* 公司最早生产的第一台手机 01版本,只具备显示电话号码功能
* @author Liudeli
*
*/
class Phone01 {
/**
* 拨打电话操作(显示电话号码)
*/
public void call() {
System.out.println("电话号码:13887986585");
}
}
/**
* 测试端程序
* @author Liudeli
*
*/
public class Demo5 {
/**
* 测试程序
* @param args
*/
public static void main(String[] args) {
// 拿到一台手机
Phone01 phone1 = new Phone01();
// 操作手机
phone1.call();
}
}
运行结果:
由于公司研发的不断努力,推出了Phone02升级版本,此版本具备显示姓名,电话号码功能;
package com.oop;
/**
* Java什么时候该使用覆盖操作
* @author Liudeli
*
*/
/**
* 公司最早生产的第一台手机 01版本,只具备显示电话号码功能
* @author Liudeli
*
*/
class Phone01 {
/**
* 拨打电话操作(显示电话号码)
*/
public void call() {
System.out.println("电话号码:13887986585");
}
}
/**
* 推出了Phone02升级版本,此版本具备显示姓名,电话号码功能
* @author Liudeli
*
*/
class Phone02 extends Phone01 { // 为什么要继承Phone01呢,因为Phone02是在Phone01的基础上研发出来的
/**
* 拨打电话操作(显示电话号码,显示姓名)
*/
public void call() {
System.out.println("姓名:刘德刘,电话号码:13887986585");
}
}
/**
* 测试端程序
* @author Liudeli
*
*/
public class Demo5 {
/**
* 测试程序
* @param args
*/
public static void main(String[] args) {
// 拿到一台手机
Phone01 phone = new Phone02();
// 操作手机
phone.call();
}
}
运行结果:
由于公司研发人员的不断加班加点,在年尾期间,推出了Phone10升级版本,此版本具备显示姓名,电话号码,显示大头贴功能;
package com.oop;
/**
* Java什么时候该使用覆盖操作
* @author Liudeli
*
*/
/**
* 公司最早生产的第一台手机 01版本,只具备显示电话号码功能
* @author Liudeli
*
*/
class Phone01 {
/**
* 拨打电话操作(显示电话号码)
*/
public void call() {
System.out.println("电话号码:13887986585");
}
}
/**
* 推出了Phone02升级版本,此版本具备显示姓名,电话号码功能
* @author Liudeli
*
*/
class Phone02 extends Phone01 { // 为什么要继承Phone01呢,因为Phone02是在Phone01的基础上研发出来的
/**
* 拨打电话操作(显示电话号码,显示姓名)
*/
public void call() {
System.out.println("姓名:刘德刘,电话号码:13887986585");
}
}
/**
* 推出了Phone10升级版本,此版本具备显示姓名,电话号码,大头贴显示功能
* @author Liudeli
*
*/
class Phone10 extends Phone02 { // 为什么要继承Phone02呢,因为Phone10是在Phone02的基础上研发出来的
/**
* 拨打电话操作(显示电话号码,显示姓名,显示大头贴)
*/
public void call() {
System.out.println("姓名:刘德刘,电话号码:13887986585,显示了帅气的大头贴照片...");
}
}
/**
* 测试端程序
* @author Liudeli
*
*/
public class Demo5 {
/**
* 测试程序
* @param args
*/
public static void main(String[] args) {
// 拿到一台手机
Phone01 phone = new Phone10();
// 操作手机
phone.call();
}
}
运行结果:
谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,
刘德利优快云博客, http://blog.youkuaiyun.com/u011967006