精品丰满熟女一区二区三区_五月天亚洲欧美综合网_亚洲青青青在线观看_国产一区二区精选

  • <menu id="29e66"></menu>

    <bdo id="29e66"><mark id="29e66"><legend id="29e66"></legend></mark></bdo>

  • <pre id="29e66"><tt id="29e66"><rt id="29e66"></rt></tt></pre>

      <label id="29e66"></label><address id="29e66"><mark id="29e66"><strike id="29e66"></strike></mark></address>
      學(xué)習(xí)啦>生活課堂>生活小常識>

      繼承跟多態(tài)的區(qū)別

      時(shí)間: 岳彬1043 分享

        在計(jì)算機(jī)語言中有一種是JAVA的語言,里面有一些方法,繼承,重載,重寫。下面是學(xué)習(xí)啦小編為你整理的繼承跟多態(tài)的區(qū)別,供大家閱覽!

        重載,繼承,重寫和多態(tài)的區(qū)別:

        繼承是子類獲得父類的成員,重寫是繼承后重新實(shí)現(xiàn)父類的方法。

        重載是在一個(gè)類里一系列參數(shù)不同名字相同的方法。

        多態(tài)則是為了避免在父類里大量重載引起代碼臃腫且難于維護(hù)。

        網(wǎng)上看到一個(gè)有趣的說法是:繼承是子類使用父類的方法,而多態(tài)則是父類使用子類的方法。

        下面的例子包含了這四種實(shí)現(xiàn):

        class Triangle extends Shape {

        public int getSides() { //重寫

        return 3;

        }

        }

        class Rectangle extends Shape {

        public int getSides(int i) { //重載

        return i;

        }

        }

        public class Shape {

        public boolean isSharp(){

        return true;

        }

        public int getSides(){

        return 0 ;

        }

        public int getSides(Triangle tri){

        return 3 ;

        }

        public int getSides(Rectangle rec){

        return 4 ;

        }

        public static void main(String[] args) {

        Triangle tri = new Triangle(); //繼承

        System.out.println("Triangle is a type of sharp? " + tri.isSharp());

        Shape shape = new Triangle(); //多態(tài)

        System.out.println("My shape has " + shape.getSides() + " sides.");

        }

        }

        注意Triangle類的方法是重寫,而Rectangle類的方法是重載。

        比較就可以發(fā)現(xiàn)多態(tài)對重載的優(yōu)點(diǎn):如果用重載,

        則在父類里要對應(yīng)每一個(gè)子類都重載一個(gè)取得邊數(shù)的方法;如果用多態(tài),

        則父類只提供取得邊數(shù)的接口,至于取得哪個(gè)形狀的邊數(shù),怎樣取得,

        在子類里各自實(shí)現(xiàn)(重寫)。

      3049723