注意java静态方法没有多态。。
//详解java多态
public class test1 {
public static void main(String[] args) {
Parent parent = new Parent();
Parent child = new Child(); //child变量只能调用Parent里的方法,如果在子类中也实现了相同的方法(重写),那么就调用子类的方法,但是因为方法名一样, 所以还是理解成只能调用父类里定义了方法
System.out.println(parent.getName());
System.out.println(child.getName());
System.out.println(parent.getName2());
System.out.println(child.getName2());
System.out.println("//***************************//");
((Child)child).func1(3);
child.func1();
}
}
class Parent {
public static String getName() {
return "Parent";
}
public String getName2()
{
return "Parent";
}
public void func1()
{
System.out.println("Parent Func1()");
}
}
class Child extends Parent {
public static String getName() {
return "Child";
}
public String getName2()
{
return "Child";
}
public void func1(int i)
{
System.out.println("Child func1(i)");
}
}
//详解java多态
public class test1 {
public static void main(String[] args) {
Parent parent = new Parent();
Parent child = new Child(); //child变量只能调用Parent里的方法,如果在子类中也实现了相同的方法(重写),那么就调用子类的方法,但是因为方法名一样, 所以还是理解成只能调用父类里定义了方法
System.out.println(parent.getName());
System.out.println(child.getName());
System.out.println(parent.getName2());
System.out.println(child.getName2());
System.out.println("//***************************//");
((Child)child).func1(3);
child.func1();
}
}
class Parent {
public static String getName() {
return "Parent";
}
public String getName2()
{
return "Parent";
}
public void func1()
{
System.out.println("Parent Func1()");
}
}
class Child extends Parent {
public static String getName() {
return "Child";
}
public String getName2()
{
return "Child";
}
public void func1(int i)
{
System.out.println("Child func1(i)");
}
}