Java 方法重写,Java什么是方法重写

  Java 方法重写,Java什么是方法重写

  如何解决写爬虫IP受阻的问题?立即使用。

  java中方法重写的方法:

  在java中,方法的重写基于java类的三个特征之一:继承。没有继承,就谈不上方法的重写。方法重写是当一个程序中父类的一个方法不能满足子类的需要时,子类可以重新定义一个方法的内容和功能来满足子类的需要的操作。那么方法的重写是如何通过代码实现的呢?下面博主带你一探究竟。

  (1)定义多边形类

  类多边形{

  //属性

  private int number _ side

  //构造函数

  公共多边形(int number_side) {

  super();

  this.number _ side=number _ side

  }

  //方法

  public int getNumber_side() {

  返回number _ side

  }

  public void set number _ side(int number _ side){

  this.number _ side=number _ side

  }

  公共void show(){

  system . out . println( Number _ side就是 this . Number _ side );

  }

  }在这个类中,除了get和set方法,还有一个show方法,可以输出多边形的边数。

  (2)定义正方形类继承多边形类。

  类正方形扩展多边形{

  //属性

  私倍长;

  //构造函数

  公共正方形(double length,int number_side) {

  超(数_方);

  this.length=长度;

  }

  //方法

  public double getLength() {

  返回长度;

  }

  public void setLength(double length){

  this.length=长度;

  }

  //输出边的数量和长度

  公共void show(){

  System.out.println(这是正方形);

  super . show();

  System.out.println(Length是 this . Length);

  }

  }如你所见,子类square中仍然有一个show方法,但其功能和语句与父类中的show方法有很大不同。因为,在子类square中,子类square的show方法的函数不仅要输出边数,还要输出边长,所以此时父类的show方法不能满足子类的需求,开发者要重写一个show方法来满足子类的需求,这就是java中的方法重写。

  在实际开发过程中,还有很多其他情况适用于方法重写。接下来,本文将列举几种常用的方法重写。

  在java的java.lang包下,有一个名为Object的类。对象是一个特殊的类,它是所有类的父类。当我们创建一个类时,如果我们没有声明它继承自我们自己创建的类,那么它继承自Object,只是java中省略了extends Object关键字。Object类中常用的方法有两种:1.toString()方法;2.2.equals()方法这两个方法通常在开发人员创建的类中被重写。

  1、toString()方法

  toString()方法的作用是以字符串的形式返回一个对象。例如:

  多边形p=新多边形(3);

  system . out . println(p . tostring());这里调用的toString()方法是Object类中的toString()方法。

  输出是:

  可以看出,调用Object类中的toString()方法时,返回的是一个字符串形式的对象,即对象的地址。

  在实际应用中,通常会重写toString()方法,为对象提供特定的字符串输出模式,例如:

  公共类测试{

  公共静态void main(String[] args) {

  多边形p=新多边形(3);

  system . out . println(p . tostring());

  }

  }

  类多边形{

  //属性

  private int number _ side

  //构造函数

  公共多边形(int number_side) {

  super();

  this.number _ side=number _ side

  }

  //.....这里省略了其他不相关的方法。

  @覆盖

  公共字符串toString() {

  返回 Polygon[number _ side= number _ side ];在Polygon类Polygon中,toString()方法被重写。在main方法中,我们创建一个polygon对象P并实例化它,在Polygon中调用重写的toString()方法。

  此时,系统以字符串的形式输出多边形类名及其属性。

  2、equals()方法

  equals()方法在对象类中的具体体现是什么?它的功能是什么?老规矩,直接去码。

  公共布尔等于(对象对象){

  return(this==obj);

  }这是Object类的equals()方法在源代码中的具体实现,让我们知道Object中equals()方法的作用就是比较两个对象的引用是否相等。当我们在Object类中调用equals()方法时:

  公共类测试{

  公共静态void main(String[] args) {

  正方形s1=新正方形(5.2,4);

  平方s2=新平方(5.2,4);

  system . out . println(S1 . equals(S2));

  }

  }系统的输出是:

  然后我们在square类中覆盖equals()方法。

  公共布尔等于(对象对象){

  if (this==obj)

  返回true

  if (obj==null)

  返回false

  if (getClass()!=obj.getClass())

  返回false

  square other=(平方)obj

  if(double . doubletolongbits(length)!=Double。doubleToLongBits(其他长度))

  返回false

  返回true

  }当再次调用square类中的equals()方法时

  公共类测试{

  公共静态void main(String[] args) {

  正方形s1=新正方形(5.2,4);

  平方s2=新平方(5.2,4);

  system . out . println(S1 . equals(S2));

  }

  }系统的输出是:

  与前面的fasle相比,此时输出true是因为重写了equals()方法,重写后的equals()方法比较两个对象的实际内容,也就是两个对象的属性(注意:equals()方法没有比较两个对象的方法,因为没有意义),当它们相等时输出true。

  这就是关于方法重写的基础知识和一些共同点。在前面关于多态性的章节中,博主提到方法的重写也是多态性的一种表现。现在,我们可以知道它们都是toString()和equals()方法。在自定义类中重写后,它们的功能与对象类中的完全不同。这也是同一类事物的不同表现,符合多态性的本质。

  推荐教程:《java视频教程》以上是如何用java重写的?更多详情请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: