这段有点晕,整理一下方便以后回忆- class Fu{
- int num=5;
- public void method_1(){
- System.out.println("Fu method_1");
- }
- public void method_2(){
- System.out.println("Fu method_2");
- }
- static void method_4(){
- System.out.println("Fu method_4");
- }
- }
- class Zi extends Fu{
- int num=8;
- public void method_1(){
- System.out.println("Zi method_1");
- }
- public void method_3(){
- System.out.println("Zi method_3");
- }
- static void method_4(){
- System.out.println("Zi method_4");
- }
- }
- public class Sunday{
- public static void main(String[] args){
-
- /*
- Fu f=new Zi();
- f.method_4(); //Fu method_4
- */
-
- /*
- Fu f=new Zi();
- System.out.println(f.num);//5
- Zi z=new Zi();
- System.out.println(z.num);//8
- */
- /*
- Fu f=new Zi();
- f.method_1();//Zi method_1
- f.method_2();//Fu method_2
- */
- /*
- Fu f=new Zi();
- f.method_1();
- f.method_2();
- f.method_3();//编译期报错,找不到符号method_3
- */
- /*
- Zi z=new Zi();
- z.method_1(); //Zi method_1
- z.method_2(); //Fu method_2
- z.method_3(); //Zi method_3
- */
- }
- }
复制代码
在多态中成员方法(非静态方法)的特点:
编译时期,参阅引用变量所属的类中是否有调用的方法,如果有编译通过,如果没有编译失败。
运行时期,参阅对象所属的类中是否有调用的方法。
简单总结就是,成员方法编译时看左边,运行是看右边。
在多态中,成员变量的特点:
简单总结就是,无论编译还是运行,都参考左边(引用数据所属的类)。
静态方法和静态变量的特点,与成员变量一样,都参考左边(引用数据所属的类)
|
|