永久地址:http://justt0.iteye.com/admin/blogs/new
变量:变量只会被隐藏,不能被覆盖,子类的实例变量/静态变量会隐藏父类同名的实例变量/静态变量,注意“/”这个符号,说明总共有4种隐藏方式。
方法:方法有两种方式,被隐藏/覆盖,同名的静态方法被隐藏,同名的实例方法被覆盖,交叉的形式会报错。
父类:
package testjava; public class Father { public String name = "father"; public String getName() { return name; } public void setName(String name) { this.name = name; } }
子类:
package testjava; public class Child extends Father{ public String name = "child"; public String getName() { return name; } public void setName(String name) { this.name = name; } }
测试类:
package testjava; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Child c = new Child(); System.out.println(c.name); System.out.println(c.getName()); Father f = c; System.out.println(f.name); System.out.println(f.getName()); } }
总结;
1. 可以通过改变父类/子类变量name的类型(实例变量/static变量)测试变量的隐藏效果。
2. 可以通过改变父类/子类getName()方法的类型(如果方法是static的,需要将方法所属类name变量的类型也该为static),然后你就会发现,同名的static方法子类会隐藏父类的方法,而同名的实例方法子类会覆盖父类的方法,交叉形式的重写行为不会被编译器允许。
相关推荐
4. **多态**:多态性是指同一种行为可以有不同的表现形式,这在Java中主要体现在方法的覆盖(Override)和接口的实现(Implements)。它提供了代码的灵活性,使得程序在运行时可以处理多种类型的对象。 5. **抽象类...
这个"ACCP Java练习题"压缩包文件,由田超凡原创并已申请版权,旨在帮助学习者巩固和提升Java编程技能。 1. **面向对象编程基础**: - 类与对象:Java中的所有程序设计都是基于类和对象的。类是创建对象的蓝图,...
这样局部变量会覆盖成员变量,这时通过this 来调用实例的属性. 成员变量的初始化 •当类被加载时,类成员就在内存中分配了一块空间。 •当对象被创建时,实例成员就在内存中分配了内存空间。 •实例变量与...
Java通过接口(Interface)和抽象类(Abstract Class)实现多态,允许子类根据需要覆盖或实现父类的方法。 除了上述基础概念,Chapter04Exercise可能还会涉及以下主题: - **异常处理**:Java使用异常(Exception...
3. **实现validate方法:** 覆盖`validate`方法来实现表单字段的验证逻辑。 **1.3 Action** Action是STRUTS框架的核心组件之一,负责处理用户的请求并决定应用程序的流程。创建Action的具体步骤如下: 1. **继承...