java 私有方法能否重载
2006-10-11 15:52
232 查看
先看下面的一个例子:
public class Test extends Xx
{
private void m()
{
System.out.println("Hello Test!");
}
public static void main(String [] args)
{
new Test().put();
}
}
class Xx
{
private void m()
{
System.out.println("Hello Xx!");
}
public void put()
{
m();
}
}
输出结果:Hello Xx!
new Test().put()方法调用的是超类的m()方法,显然子类的m()没有覆盖子类的m()方法;
再看一个例子:
public class Test extends Xx
{
public void m()
{
System.out.println("Hello Test!");
}
public static void main(String [] args)
{
new Test().put();
}
}
class Xx
{
public void m()
{
System.out.println("Hello Xx!");
}
public void put()
{
m();
}
}
输出结果为:Hello Test!
new Test().put()调用的是子类的m()方法,子类的m()方法覆盖了父类的m()方法;
以上两个例子证明,私有方法不可以重载;表面上看我们重载了私有方法,其实在子类中的方法
m()好比是一个新的方法,与父类的同名方法,没有关系!
以上说的,不知对否,望大家指正!
public class Test extends Xx
{
private void m()
{
System.out.println("Hello Test!");
}
public static void main(String [] args)
{
new Test().put();
}
}
class Xx
{
private void m()
{
System.out.println("Hello Xx!");
}
public void put()
{
m();
}
}
输出结果:Hello Xx!
new Test().put()方法调用的是超类的m()方法,显然子类的m()没有覆盖子类的m()方法;
再看一个例子:
public class Test extends Xx
{
public void m()
{
System.out.println("Hello Test!");
}
public static void main(String [] args)
{
new Test().put();
}
}
class Xx
{
public void m()
{
System.out.println("Hello Xx!");
}
public void put()
{
m();
}
}
输出结果为:Hello Test!
new Test().put()调用的是子类的m()方法,子类的m()方法覆盖了父类的m()方法;
以上两个例子证明,私有方法不可以重载;表面上看我们重载了私有方法,其实在子类中的方法
m()好比是一个新的方法,与父类的同名方法,没有关系!
以上说的,不知对否,望大家指正!
相关文章推荐
- 在Java中子类能否重载父类的构造方法?
- java反射中两种方法的不同(反射能否实现对类的私有方法的调用)
- Java重载陷阱:“覆盖”私有方法
- Java反射之获取私有公共的属性和方法
- java方法的继承,覆盖与重载
- 2.Java中涉及基本数据类型的方法重载
- Java面向对象基础---名词概念的理解:方法的重载、构造函数、封装性
- 深入理解Java的方法重载机制
- java编程思想-方法重载
- java中方法的重写与重载的区别
- java通过反射获取私有的构造方法,及反射擦除泛型数据类型约束
- java学习中重写与重载方法的区别(转自:小鸟的天空)
- 从jvm虚拟机聊聊java的方法重载和重写
- java 里方法的重载
- JAVA方法重载与重写的区别
- 类、对象、继承、封装、多态、方法的重载和重写、Java的访问修饰符与其它关键字
- Java中对象的初始化与方法重载2
- java反射访问私有属性和方法
- Java 使用方法重载实现给函数设定默认值
- Java反射高级应用--利用反射调用类的私有方法修改私有方法值,以及替换Java的类成员数据