java子类如何调用父类变量和方法

来源:互联网 发布:企业工商数据api 编辑:程序博客网 时间:2024/05/01 18:25

深入浅出,保证一看就懂

package com.company;/** * Created by liuyazhou on 2016/9/21. */public class Test {    //    private static String  str1="str1"; ///在TestSon中System.out.println(str1);报错    //    private  String  str2="str2";///在TestSon中System.out.println(str2);报错    public static String str1 = "str1";    public String str2 = "str2";    // System.out.println("Test"); ////错误    public Test() {//后执行        System.out.println("Test构造方法");    }    {/////非静态代码块先执行        System.out.println("Test非静态代码块"); ////正确    }    public void fun2() {        System.out.println("Test.fun2");    }    public void fun3() {        System.out.println("Test.fun3");    }    public static String getStr1() {        return str1;    }    public static void setStr1(String str1) {        Test.str1 = str1;    }    public String getStr2() {        return str2;    }    public void setStr2(String str2) {        this.str2 = str2;    }}
package com.company;public class TestSon  extends  Test{    public TestSon() {//后执行        System.out.println("TestSon构造方法");    }    {//非静态代码块先执行        System.out.println("TestSon非静态代码块");    }    public static void main(String[] args) {        TestSon testSon = new TestSon();        testSon.funSon1();        testSon.fun2();////子类直接调用父类的public方法,可以把公用类放到父类中,这样子类中无需再定义一遍,        testSon.fun3();    }//    从结果中可以看出:调用某个类的构造方法的时候总是会先执行父类的非静态代码块,然后执行父类的构造方法//    最后才执行当前类的非静态代码块,然后执行当前类的构造方法,与放置的先后位置无关,    private void funSon1(){        System.out.println("super.getStr1():"+super.getStr1());        System.out.println("super.getStr2():"+super.getStr2());        System.out.println(str1);////在父类中有误get   set方法均可        System.out.println(str2);//在父类中有误get   set方法均可        str1="str1Son";        str2="str2Son";        System.out.println("修改后"+str1);        System.out.println("修改后"+str2);    }  //  @Override  这个关键字要不要都行    public void fun3() {////重写了父类的代码        System.out.println("TestSon.fun3");    }}
运行结果如下:

Test非静态代码块Test构造方法TestSon非静态代码块TestSon构造方法super.getStr1():str1super.getStr2():str2str1str2修改后str1Son修改后str2SonTest.fun2TestSon.fun3
另外这是我个人开发的App,欢迎下载和好评,V1.5.0版本正在努力开发中......

http://www.wandoujia.com/apps/com.example.viewpager_3



0 0
原创粉丝点击