重写和重载和重构_java重写父类的方法[通俗易懂]

重写和重载和重构_java重写父类的方法[通俗易懂]JAVA中的重写、重构和重载的概念对于一个刚入门Java爱好者来说,很容易能混,下面就说一下我对着三个概念的理解。1.重写,又称为覆盖,应用于父类和子类之间,子类中的成员方法和父类中的成员方法同名,但方法的实现或者方法的权限(只能比父类方法的权限大)或者方法的返回值类型(只能是父类返回值类型的子类)不同。 2.重构,是重写的一种,即子类成员方法和父类中成员的方法名相…_java重构和重写的区别

   JAVA中的重写、重构和重载的概念对于一个刚入门Java爱好者来说,很容易能混,下面就说一下我对着三个概念的理解。

  •      1.重写(override),又称为覆盖,应用于父类和子类之间,子类中的成员方法和父类中的成员方法同名,但方法的实现或者方法的权限(只能比父类方法的权限大)或者方法的返回值类型(只能是父类返回值类型的子类)不同。
  •      2.重构,是重写的一种,即子类成员方法和父类中成员的方法名相同,只有方法的实现不同。
  •      3.重载(overload),应用于同一个类中,同一个类中不同的成员的方法名相同,但方法入参的类型、个数、顺序不同。但容易忽略的一个重载是不定长参数的方法也是同名一般方法的重载。

      重写和重载和重构_java重写父类的方法[通俗易懂]
     从上面的介绍可以看出,重写是父类和子类之间的玩的,主要玩的是方法实现;重载是同一个类自己玩的,主要玩的是入参,不能通过单一的返回值不同说是重载。

父类:
 

public class A {

protected static int i = 10;  
protected A print(int j,double x)
{
System.out.println("A print");
return new A();

}

//重载起源于构造函数,如下面的有参构造和无参构造就是重载
public A() {
super();
System.out.println("A");
}

public A(int i) {
super();
this.i = i;
}
}

子类:
 

public class B extends A {

/**
 * 重写A中的 protected A print(int j,double x)
 * 权限变大,返回值变为A的子类,方法实现不同(三者只要变一个就构成重写)
 */
public B print(int j, double x)
{
j++;
System.out.println("B print");
return new B();
}


/**
 * 重构,重写的一种,只是方法实现变了。(和上面的方法不能构成重载,所以编译报错,只能注掉)
 */
// protected A print(int j,double x)
// {
// j++;
// return new A();
//
// }


/**
 * 重载 print(int j, double x)
 * 入参个数变化
 */
public B print(int j)
{
j++;
System.out.println("B print");
return new B();
}


/**
 * 重载 print(int j, double x)
 * 入参种类变化
 */
public B print(int j, long l)
{
j++;
System.out.println("B print");
return new B();
}


/**
 * 重载 print(int j, double x)
 * 入参顺序变化 (返回值类型发生了变化,不影响,不能单独作为重载的标准)
 */
public A print(double x, int j)
{
j++;
System.out.println("B print");
return new B();
}


/**
 * 重载 print(int j, double x)
 * 不定长参数方法,入参相当于数组
 */
protected void print(int ...is)
{
System.out.println("B print");
}
}

 

今天的文章重写和重载和重构_java重写父类的方法[通俗易懂]分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/58190.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注