本文主要是介绍多态:成员变量静态方法、非静态方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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");}@Overridepublic 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博客
这篇关于多态:成员变量静态方法、非静态方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!