java 继承重写jar java继承方法重写_java 继承重写jar


一、继承

在java里面,继承是一个非常重要的概念,因为java是面向对象的编程语言,而对象往往有着共同的属性和方法,这时我们可以将它们抽象为一个类,当其他对象同样含有这些属性和方法时,便可以通过继承这个类去构造自己需要的对象。

举个简单例子:


java 继承重写jar java继承方法重写_父类_02

关于玩家对象共有的属性和方法抽象出来的Player类


java 继承重写jar java继承方法重写_方法重写_03


java 继承重写jar java继承方法重写_java 继承重写jar_04

Aotoma和Master(子类)具备玩家的属性和方法,通过extends关键字继承Player类(父类)

由这个例子,我们总结出继承的格式:


class 子类 extends 父类{
...
}


通过继承,我们可以

①提高代码的可重用性;

②父类的属性和方法可用于子类;(子类可以直接调用父类的方法和继承的属性,如果需要修改父类的方法,则可以方法重写,注意:当子类调用方法时,子类父类中都有此方法(也就是子类重写了此方法),则优先调用子类中的方法,如果没有当然调用父类中的方法

③子类也可扩展父类的属性和方法;(即方法重写

在此,既然提到方法重写,我便简单讲一下:


/*
**方法重写,定义一个无敌玩家类
*/
public class Invicible extends Player{
public void pk(Player pla)//根据需要,子类可以重写父类的方法
{
  System.out.println(name+"的血量无敌,可以pk掉所有玩家,包括" +pla.name);
 }
}


子类可以拥有和父类同名方法,符合重写规范的话会发生覆盖。
方法重写的规范包括:

  1. 方法名相同;
  2. 参数列表相同(包括参数个数、类型、顺序三者都相同);
  3. 返回类型相同;
  4. 子类方法的访问修饰符不能小于父类方法的访问修饰符

二、构造方法

作为比较,我们知道普通方法的格式为:


访问修饰符 返回值类型 方法名(参数类型 参数名,...){
    方法具体实现
}
例如:
public void Set(int pos){
    //......
}


而构造方法格式为:


访问修饰符 类名(参数类型 参数名,...){
    //...
}
例如:
public Set(int pos){
    //......
}


从这里我们可以看出:

  • 构造方法名必须和类名一致
  • 构造方法无返回值类型

除此之外,我们通过了解它的作用来发现它的其他特征:

  1. 构造方法可以实例化对象;
  2. 构造方法可以利用参数列表传递参数

三、方法重载

方法重写发生在继承的子类中,但是如果在一个类里面,也出现了两个方法名一样的方法,那又叫什么呢?——方法重载

适合场景:同一个类里面,需要创建方法名相同,参数不同(参数类型,参数个数,参数顺序)的方法来适应不同的需求输入需要和输出需求。

举个简单例子


public int max(int x,int y){
    if(x>y)
      return x; 
    else
      return y;
}//已经存在的一个求两个整型数的最大值的方法


如果要求三个整数或者求double型的两个数的最大值等,则需要进行方法重写


public int max(int x,int y,int z){
      return (max(x,y),z);
}//求三个整数最大值的方法


public double max(double x,double y){
     if(x>y)
        return x;
     else
        return y;
}