时间:2021-05-20
本文实例讲述了Java的覆写操作。分享给大家供大家参考,具体如下:
一 属性覆写
1 点睛
所谓属性覆写,指的是子类定义和父类定义之中名称相同的属性。
2 代码
class Book{ String info = "Hello World." ; // 如果加上private,1处的代码就会编译不过}class ComputerBook extends Book{ int info = 100 ; // 属性名称相同 public void print() { System.out.println(info) ; System.out.println(super.info) ; // 1处代码 }}public class OverrideData{ public static void main(String args[]) { ComputerBook cb = new ComputerBook() ; // 实例化子类对象 cb.print() ; }}3 运行
100
Hello World.
4 说明
该代码没有太大的意义,它并没有实现真实的覆写。为了满足类的封装型,类中的属性一般都需要private封装,一旦封装之后,子类根本就“看不见”父类的属性成员,子类定义的同名属性成员,其实就是一个“全新的”数据成员,所谓的覆写操作就没意义了。
二 super调用父类方法
1 点睛
子类中可以通过super.方法()调用父类中被覆写的方法。
2 代码
class Person{ String name; int age; public String talk( ) { return "I am " + this.name + ", I am " + this.age + " years old"; }}class Student extends Person{ String school; public Student( String name, int age, String school ) { // 分别为属性赋值 this.name = name; //super.name = name; this.age = age; //super.age = age; this.school = school; } // 此处覆写Person中的talk()方法 public String talk( ) { return super.talk()+ ", I am from " + this.school ; }}public class Override2{ public static void main( String[] args ) { Student s = new Student( "Jack ", 25, "HAUT" ); // 此时调用的是子类中的talk()方法 System.out.println( s.talk() ); }}3 运行
I am Jack , I am 25 years old, I am from HAUT
4 说明
在完成方法覆写时,需要注意以下几点:
更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例分析了Java中的传值调用。分享给大家供大家参考。具体分析如下:Java以引用的方式操作对象实例可以确认的是Java中操作对象的方式是以引用的方式操作对
本文实例讲述了php实现parent调用父类的构造方法与被覆写的方法。分享给大家供大家参考。具体分析如下:覆写:被重新设计。在子类中定义构造方法时,需要传递参数
本文实例讲述了Java对时间的简单操作方法。分享给大家供大家参考。具体分析如下:这里所用的Date指的是java.util.Date。ps:使用java操作时间
本文实例分析了Java中List与数组相互转换的方法。分享给大家供大家参考。具体如下:今天写代码遇到一个奇怪的问题,具体代码不贴出了,写一个简化的版本。如下:A
本文实例分析了java序列化与反序列化操作。分享给大家供大家参考,具体如下:概述:Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把