У меня 2 объекта определяетсяклассы Java Наследование с основным методом
В объектно-1, когда я ссылаться на дочерний объект он вызывает метод ребенок m1(), тогда как в объектно-2, когда я ссылаться на дочерний метод m1 () он ссылается на родительский объект ..
В обоих случаях я предполагаю родительский объект будет держать объект типа ребенка во время выполнения ...
объект-1
package pkgB;
class Parent{
static int i = 10;
void m1(){
System.out.println("In Parent = " + i);
}
static void m1(String s){
System.out.println(s +i);
}
}
public class Child extends Parent{
static int i = 20;
void m1(){
System.out.println("In child" + Child.i);
}
public static void main(String[] args){
Parent p = new Child();
p.m1();
}
}
Объект-2
package pkgB;
class Drink{
public static void m1(){
System.out.println("Im Drink method");
}
}
class Coffee extends Drink{
public static void m1(){
System.out.println("Im Coffee method");
}
}
public class test {
public static void main(String[] args) {
Drink d = new Coffee();
d.m1();
}
}
Выход Dobject-1:
In child20
Выход Dobject-2:
Im Drink method
Вы не можете переопределять статические методы. И помимо этого, вы не должны вызывать статические методы для экземпляра. (В вашей среде IDE должно появиться предупреждение!) – dognose