`
huangfeiNetJava
  • 浏览: 39572 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

多态详解

 
阅读更多

   

多态之类的继承:

 

      首先,从一个问题入手:为什么需要继承?假如你已经去创建一个类A,但当你需要再创建一个类B,并且类B要有类A的所有或者大部分的属性和方法,没有弄明白类的继承之前,你就只能自己再敲一遍类A的代码了(更快一点的就是不敲,直接复制粘贴)。你敲着敲着,可能一股无名业火涌上心头,烦躁难当。这时候,就是“类的继承”发挥作用的时候了。前面类A我们成为"父类",类B我们称为“子类”,通过继承,子类就能名正言顺地使用父类的所有属性和方法。(以上只是针对“public ”型的属性和方法 ,注意“访问修饰符”和“是否同包”对子类的限制作用)

      现在,知道为什么需要继承了吧:

      1.减少开发的时间,降低代码的冗余。
      2.继承是用来完善面向对象的编程思想。

 

让我们感谢java鼻祖吧!因为他们一直都在为我们考虑!!

 

继承的语法格式
 访问修饰符   class  子类名  extends 父类名{
  
 }

 

多态之方法的重载:

 

      首先要明白,方法的重载是对一个类来说的。在一个类里面,允许出现多个方法名相同的方法,但前提是这些方法的参数列表都必须互不相同。

      参数列表的不同有以下几个方面:

      1.参数的个数不同

      2.参数的个数相同,参数的类型不同

      3.参数的个数相同,参数的顺序不同

如:原方法--->public void  Way(float x,int y){}

       重载1--->public void  Way(int x,int y,int m,int n){}

       重载2--->public void  Way(int  x,int y){}

       重载3--->public vod  Way(int x,float y){}

 

     那调用方法时,怎么知道用的是哪个方法呢?没错,就是根据你说传人的参数(即参数列表的属性),编译器能够根据你传入的参数判断调用哪个方法。

 

 

多态之方法的重写:

 

     方法的重写是对类的继承而言的。子类中可以创建一个方法,这个方法的访问修饰符、返回值、方法名、参数列表都与父类的方法不同,唯一不同的是子类的这个方法的方法体与父类的不同。当用子类的对象调用方法时,首先调用的是子类重写的方法,父类的对应的方法会被屏蔽。实现方法重写,在调用的过程中,会优先调用子类的方法,如果子类没有该方法,则调用父类的方法。

      实现重写,子类中定义的方法,必须在父类中存在,如果父类中不存在该方法,那么就是
 子类自己定义的一个新的方法。 子类要实现重写,那么方法的返回值类型,方法名,参数个数以及参数类型都必须和父类的完全 相同,子类的唯一能修改的地方是访问修饰符,但是,子类的访问修饰符只能比父类的大,不能比父类的小。
     大--->小
     public --> protected -->  private

 

 

多态之自动转型:

 

     要实现自动转型必须存在继承的关系。
     自动转型只能用于子类和父类之间的。

 

     自动转型常用格式:父类名    对象名   =  new  子类构造方法();  (向上转型)

 

     自动转型后对象就不能够调用子类独特的方法与属性,这看来似乎不好,但是这也是个优点,可以更好地体现java的编程思想,让对象对方法的和属性的使用更加的规范化。

1
4
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics