java 子类继承父类 -- 重写、覆盖
来源:互联网 发布:linux jenkins 安装 编辑:程序博客网 时间:2024/05/18 02:43
class Foo { public int a; public static final String str = "foo"; public Foo() { a = 3; } public int addFive() { a = a + 5; return a; } public int addFiveByGetA() { a = getA() + 5; return a; } public int getA() { return a; } public String getStr() { return str; } public String addStr() { return getStr(); } } public class Bar extends Foo { public int a; public static final String str = "bar"; public Bar() { a = 8; } // public int addFive() { // a += 5; // return a; // } public int getA() { return a; } public String getStr() { return str; } public static void main(String[] args) { Foo foo = new Bar(); Bar bar = new Bar(); //调用的是子类中的方法 System.out.println(foo.getA()); //调用的是子类中的方法 System.out.println(bar.getA()); //直接调用父类中的a System.out.println("Value: " + foo.a); //直接调用子类中的a System.out.println("Value: " + bar.a); //调用的是父类中的方法 System.out.println(foo.addFive()); //调用的是父类中的方法 System.out.println(bar.addFive()); //调用的是子类中的方法 System.out.println(foo.addFiveByGetA()); //调用的是子类中的方法 System.out.println(bar.addFiveByGetA()); //直接调用父类中的str System.out.println("str: " + foo.str); //直接调用子类中的str System.out.println("str: " + bar.str); //调用的是父类中的方法 System.out.println(bar.getStr()); } }
运行结果:
8
8
Value: 3
Value: 8
8
8
13
13
str: foo
str: bar
bar
其实Java继承中,成员变量(包括静态变量,实例变量,常量)没有覆盖(override)一说,应该叫隐藏(hidden)。override只针对方法来说的。
当成员变量为private时,其他类不能直接访问到,只能通过非private方法 访问,因此直接按照分析方法的思路分析,如该方法是否有覆盖,该方法是否是静态方法。
当成员变量为static时,即静态变量,在类加载过程中就分配了内存,因此只与访问的变量类型有关。
只要记住:一个男人肯定也是人,一个人却不一定是男人的道理,就非常容易理解父类和子类之间的转换关系了。
-Object类-
Object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类就默认继承Object类。因此,Object类是Java类层中的最高层类,是所有类的超类。Java中任何一个类都是它的子类,由于所有的类都是由Object衍生出来的,所以Object的方法适用于所有类。
- java 子类继承父类 -- 重写、覆盖
- java 子类继承父类 -- 重写、覆盖与多态
- Java 子类继承父类方法的重写(或者覆盖,override)
- java 子类可以继承父类中的什么,子类中方法覆盖,final关键字的含义
- 关于继承时子类重写父类方法和覆盖父类变量的若干问题 (待进一步研究)
- 继承的顺序,子类覆盖继承父类的方法
- 【Java笔记】继承父类的方法可以调用子类的方法(子类必须在重写相应方法)
- JAVA中子类是否可以可以继承、重写父类的静态方法--总结
- 关于Java中子类能否继承和重写父类的静态方法问题
- 子类重写和覆盖
- Java子类继承父类
- java子类继承父类
- Java中 元素的继承,子类属性覆盖父类属性的实例
- Checklists学习日志之父类、子类、继承、重写
- 继承中子类重写父类方法必须满足条件
- JAVA 子类重写父类的总结
- java 子类重写父类的方法
- 子类重写父类注意事项 java
- Awk:常用操作
- Android应用--简、美音乐播放器增加音量控制
- fedora安装软件事务出错处理
- Oracle获取GUID
- scanf 格式化输入 getchar
- java 子类继承父类 -- 重写、覆盖
- 插入排序
- Jetty(6.1.3版本)-轻量级的web容器
- JDBC 程序的常见错误及调试方法
- in web browser serial communication
- cocos2d-x 优化(纹理渲染优化、资源缓存、内存优化)
- struts上传文件,验证失败表单数据丢失的原因
- K小数
- 文件磁盘统计_bat脚本