这两个方法名一样不会被重写吗?

import java.util.Scanner;
public class CheckSudokuSolution {

public static int[][] readASolution(){
    Scanner input = new Scanner(System.in);
    System.out.println("Enter a Sudoku puzzzle solution: ");
    int[][] grid = new int[9][9];
    for(int i = 0;i <9;i++) {
        for(int j = 0;j <9;j++) {
            grid[i][j] = input.nextInt();
            
        }
    }
    input.close();
    return grid;
}

public static boolean isValid(int[][] grid) {
    for(int i = 0;i <9;i++) {
        for(int j = 0;j <9;j++) {
            if(grid[i][j] <1 ||grid[i][j]>9
                    ||!isValid(i, j, grid)) {
                return false;
                
            }
        }
    }
    return true;
}

public static boolean isValid(int i, int j, int[][] grid) {
    for(int column = 0;column <9;column++) {
        if(column != j &&grid[i][column] == grid[i][j]) {
            return false;
        }
    }
    for(int row = 0;row <9;row++) {
        if(row != i &&grid[row][j] == grid[i][j]) {
            return false;
        }
    }
    for(int row = (i /3) *3;row <(i /3) *3 +3;row++) {
        for(int col = (i /3) *3;col <(i /3) *3 +3;col++) {
            if(row != i &&col != j &&grid[row][col] == grid[i][j] ) {
                return false;
            }
        }
    }
    return true;
    
}

}

这个叫做方法重载,就是方法名相同参数不同。

因为参数列表不同哦

1.1 方法的重写

发生在两个有继承关系的类中,且发生在子类里边(子类认为父类的方法不适用在子类里边,对父类的方法进行重写)
子类重写的方法的权限修饰符要大于等于父类中方法的权限修饰符
重写方法的返回类型在JDk5.0以前需要一模一样,在JDK5.0以后支持斜变类型
即支持返回其父类的子类类型
子类的异常处理部分要小于等于父类的异常类型
@Override注解,表示下边被注解的方法必须要重写父类的某个方法

1.2 方法的重载

  • 方法重载的条件
  • 必须发生在同一个类体
  • 方法名需要完全相同
  • 方法的参数需要不同
  • 参数类型不同
  • 参数个数不同
  • 参数顺序不同

方法重载对返回值类型和修饰符没有要求

方法重载的作用是为了满足用户的不同需求

区分方法的重写和重载
二者的概念:

重写和重载的具体规则

重载:不表现为多态性

重写表现为多态性


原文链接:https://blog.csdn.net/qq_42059717/article/details/107127548