java方法调用的问题 这个repaint()调的是哪个 为什么啊??

public class test {
public static void main(String[] args) {
new test().start();
}
public void start(){
new A().m();
}
class A{
public void m(){
repaint();
}
public void repaint(){
System.out.println("nihao");
}
}
public void repaint(){
System.out.println("hanzhi");
}
}

调用A的repaint。
因为start调用的是A的m方法,而A里面有repaint,所以先调A自己的repaint

public class test {
public static void main(String[] args) {
new test().start();
}
public void start(){
new A().m();
}
class A{
public void m(){
repaint();
}

}
public void repaint(){
    System.out.println("hanzhi");
}

}
有几个问题 1. 这里的方法调用直接加 方法名可不可以理解成this.repaint()
2如果可以这样理解那么 A类的实例怎么调用了外部类的方法。。。

public void m(){
repaint();//实际上前面是有this.
}

public class test {
public static void main(String[] args) {
new test().start();
}
public void start(){
new A().m(); // new A()首先定义一个类A的对象,然后调用其中的方法m();
//如果你想调用类test的方法,就这样写this.start();this是指向本类的对象,用它才能调用自己的start();
}

输出的是nihao因为他调用的是A自己的 repaint()方法

这个跟继承的父类不一样的,你这个没有继承关系,当然是调用的自己的方法了。