找到工作再改名1

找到工作再改名1

 public class Parent {
     //  父类属性
    public String name = "父类属性";
     public int val =  1;
     //  静态方法
    public static void means1(){
        System.out.println("父类中的函数1");
    }
     //  实例方法
    public void means2(){
        System.out.println("父类中的函数2");
    }
}
class Child extends Parent {
     //  子类属性
    public static String name = "子类属性";
     public  int val =  2;
     public static void means1(){
        System.out.println("子类中的函数1");
    }
    @Override
    public void means2(){
        System.out.println("子类中的函数2");
    }
}
class test{
    public static void main(String[] args) {
        Parent p=new Child();
        System.out.println(p.name);//成员变量看左边  "父类属性"
        p.means1();//静态方法编译运行看左边         = "父类中的函数1"
        p.means2();//非静态方法编译看左、运行看右    = "子类中的函数2"
     }
}

成员变量静态方法:编译看左边运行看右边

非静态方法:编译运行都看右。

多态是同一个对象,在不同时刻表现出来的不同形态

举例:猫

我们可以说猫是猫:猫 cat = new 猫();

我们也可以说猫是动物:动物 animal = new 猫();

这里猫在不同的时刻表现出来了不同的形态,这就是多态

多态的前提有三个:

1、要有类的继承/接口的实现

2、要有方法的重写

3、要有父类引用指向子类对象

静态方法在类加载时就已经加载了,在类实例对象建立前就已经存在了,所有无法被后出现的子类对象进行重写。---------------获得结论:C:静态方法:编译和运行都看父类。子类可以继承父类的静态方法,但不能重写。如果父类中定义的静态方法在子类中被重新定义,那么在父类中定义的静态方法将被隐藏而非重写。换句话说,父类和子类中含有的其实是两个没有关系的方法,它们的行为也并不具有多态性、

Java—多态的成员访问特点“编译看左边,运行看左边”还是“编译看左边,运行看右边”是什么意思?看完就懂了~~_java 多态 变量编译运行看左边-CSDN博客

一看就懂,详解Java多态编译看左,运行看右_编译看左边运行看右边什么意思-CSDN博客

05-15 05:48