java继承

继承:

1、构造器的调用 ;

  2、方法的重写。

继承就是代码的高效率复用也是产品的一种派生。高效率复用就是复用一些代码,就是把以前的代码进行复用升级。说白了就是复用人家的代码,被复用的代码就是父类也叫做基类。复用人家的代码就是子类也叫做派生类。

  继承是模拟了现实生活中的一种产品的升级,比如做牛奶,首先生的奶煮熟了就是纯奶,那么这个纯奶就继承于生奶拥有了这个生奶一切的营养价值。

  然后这个纯奶分成了2条的线路去发展,经过发酵之后形成了酸奶,然后酸奶再加点果肉就是真果粒酸奶,意思就是在原来的产品之上加了一点东西就形成了新的产品了。如果卖不掉的牛奶那么就磨成了粉形成了奶粉。不管什么奶他无非就是从纯奶发展过来的。

  所以继承的重点就是在于升级,继承了他就能拥有了父类的所有东西。继承可以访问保护、公开、同包类的缺省。

  如果继承一个类就相当于拥有了这个类的所有东西,为什么叫做代码的复用呢,就是继承了父类,那么父类里面的代码就是子类的了,子类什么时候调用什么时候执行就行了。但是有些东西拥有他切没有使用的权利。

  Java只能单一继承,C++只能多继承。为什么Java只能单一继承,因为他想做出最严格的面向对象最纯的面向对象语言,单一继承主要是为了后面的扩展和升级,控制父类只有一个,父类太多那么这个产品就是混血的产品,或者是组合的产品这样的话不符合现实生活中的一些东西。其实C++也没有说可以多继承,只是说继承一个类,多去继承几个抽象类只是C++不严格可以破坏规矩。Java规定死了不能不能继承多个不然就语法错误,那么再这一方面就诞生了接口。继承的写法如图8.5所示:



 

  图8.5

  Test是父类,Test1是子类,子类继承了父类就可以调用父类里面的方法。为什么他又调用了自己的方法。因为子类有就调用子类的 子类没有就调用父类的。先看子后看父。那么构造对象那个先呢?构造对象是先父类然后在子类。

  如果父类有个有参数的构造器,子类就必须要先说明父类该传什么,就必须给父类传些东西,如果不传就会出问题。如图8.51所示:



 

  图8.51

  new了子类然后摸索一下第一行有没有super 有存的值,那么就直接提交过去,如果写的是name那么就转交给了父类,然后父类的构造器全部加载完毕之后再回到了子类的这个构造器再进行执行。

  他的super只是仅仅用来声明调用父类的哪个构造器的, this打上括号就是构造器转发,this去掉括号就是当前对象。super打上括号就是声明调用哪个构造器,super去掉括号就是父类对象。如图8.52所示:



 

  图8.52

  如果又在父类声明了一个构造器,子类再写一个构造器那么就要在选择调用那个父类的构造器。

  同样的方法子类有调用子类,子类没有再调用父类,那么我既要重写父类的方法又要调用父类的方法那怎么办?那就需要写上super的关键字。如图8.53所示:



 

  图8.53

  子类继承父类,拥有了父类的一切包括父类的对象,可以调用父类公开和保护的成员以及静态的公开和保护。子类继承父类先构造父类后构造子类。子类对象调用方法时先选择子类后选择父类,子类有调子类,子类没有调父类这些都是规则。

  子类想重写父类的方法是因为他的方法有问题或者想升级才会去重写。何为重写就是在子类里声明一个和父类一模一样的方法,这个就叫做方法的重写。所以我们今后就调子类不调用父类了还想调用父类那么就写上super关键字进行调用。

  如果父类只有一个有参数的构造器,那么子类的构造器必须加上一个super说清楚父类构造器该传递什么参数。继承还有一个优点就是统一了类型比如车车有很多种,车有很多的品牌很多的型号,如果不用继承他不能统一一体,如果用继承那么他们就会形成一个整体。所以继承还有就是归纳了类型封成了一个类型的结构。

技术分享:www.kaige123.com

猜你喜欢

转载自l4432848.iteye.com/blog/2342368