• 继承多态


    1.通过 super 调用基类构造方法,

     

    子类要继承父类,必须在子类的构造方法中将父类的构造函数进行初始化;而且父类的构造方法要在子类之前。

    1. 在子类中,若要调用父类中被覆盖的方法,可以使用super关键字。方法覆盖要求子类与父类的方法一模一样,否则就是方法重载(overload)!

    实验代码:package src;

    class P

    {

          public P()

          {

        

          }

    public void c() {

    // TODO 自动生成的方法存根

     System.out.println("这是父类");

    }

          

    }

    class C extends P{

    public void c() {

    // TODO 自动生成的方法存根

     System.out.println("这是父类");

    }

    public C()

    {c();

    super .c();

    // TODO 自动生成的方法存根

     System.out.println("这是子类");

    }

    }

    public class Tests {

    public static void main(String[] args) {

    // TODO 自动生成的方法存根

    C c= new C();

    }

    }

    验证截图:

    .

    1.   左边的程序运行结果是什么?

    2.   你如何解释会得到这样的输出?

    3.   计算机是不会出错的,之所以得

    到这样的运行结果也是有原因的,

    那么从这些运行结果中,你能总

    结出Java的哪些语法特性?

    1. 运行结果:100 200 200 200 201

    解释原因:parent.myValue++;

    parent.printValue();//201  错误,输出结果是200  这里父类对象已经是子类型的,上面加的是父类型的,而

    //下面调用的是子类型的;

    ((Child)parent).myValue++;//??

    1. parent.printValue();//输出结果是201
    2. 当子类与父类拥有一样的方法,并且让一个父类变量引用一个子类对象时,到底调用哪个方法,由对象自己的“真实”类型所决定,这就是说:对象是子类型的,它就调用子类型的方法,是父类型的,它就调用父类型的方法。这个特性实际上就是面向对象“多态”特性的具体表现。
  • 相关阅读:
    以太坊:区块(Blocks)
    以太坊:事件日志 (Event Logs)
    以太坊:节点代理(Geth/Parity Proxy) APIs
    以太坊:代币信息 Token
    以太坊:Etherscan API 约定
    以太坊:账号(Account)
    以太坊:智能合约(Contracts)
    我的友情链接
    我的友情链接
    我的友情链接
  • 原文地址:https://www.cnblogs.com/yyh-678/p/7811068.html
Copyright © 2020-2023  润新知