java中的重载和重写

方法重载和方法重写

  • 方法的重载 : 在同一个类中,出现多个同名的方法,参数列表不同,与返回值类型,修饰符无关(同名 同类 不同参 (和返回值、修饰符无关))
  • 方法的重写 : 子类中出现和父类中一模一样的方法(包括返回值类型,方法名,参数列表)(同名 同参 不同类 (修饰符权限不能缩小 返回值必须相同))

为什么要方法重写

  • 当父类中的方法无法满足子类需求的时候,需要方法重写
  • 当子类具有特有的功能的时候,就需要方法重写

方法重写的注意事项

  • 重写的方法必须要和父类一模一样(包括返回值类型,方法名,参数列表)
  • 重写的方法可以使用@Override注解来标识
  • 子类中重写的方法的访问权限不能低于父类中方法的访问权限

权限修饰符 : private < 默认(什么都不写) < protected < public

重写的应用

  • 当子类需要父类的功能,而功能的主体子类还有自己特有的内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类自己特有的内容。

方法重写

class Pet{
 public void move(){
  System.out.println("动物可以移动");
 }
}
class Dog extends Pet{
 public void move(){
  System.out.println("狗可以跑和走");
 }
}
public class TestDog{
 public static void main(String args[]){
  Animal a = new Animal(); // Animal 对象
  Animal b = new Dog(); // Dog 对象
  a.move();// 执行 Animal 类的方法
  b.move();//执行 Dog 类的方法
 }
}

方法重载

class Pet{
 public void move(){
  System.out.println("动物可以移动");
 }
}
class Dog extends Pet{
 public void move(){
  System.out.println("狗可以跑和走");
 }
 public void bark(){
  System.out.println("狗可以吠叫");
 }
}
public class TestDog{
 public static void main(String args[]){
  Pet pet = new Pet(); // Pet 对象
  Pet1 b = new Dog(); // Dog 对象
  a.move();// 执行 Pet 类的方法
  b.move();//执行 Dog 类的方法
  b.bark();
 }
}

总结

重载

  • 同一个类中
  • 方法名相同,参数列表不同(参数顺序、个数、类型)
  • 方法返回值、访问修饰符任意
  • 与方法的参数名无关

重写

  • 有继承关系的子类中
  • 方法名相同,参数列表相同(参数顺序、个数、类型),方法返回值相同
  • 访问修饰符,访问范围需要大于等于父类的访问范围
  • 与方法的参数名无关

你可能感兴趣的:(笔记,java)