库调多了,都忘了最基础的概念-方法篇

108 阅读2分钟

“我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第4篇文章,点击查看活动详情

🍁 作者:知识浅谈,CSDN博客专家,阿里云签约博主,InfoQ签约博主,华为云云享专家
📌 擅长领域:全栈工程师、爬虫、ACM算法
💒 公众号:知识浅谈

🤞这次都给他拿下🤞

正菜来了⛳⛳⛳

🎈方法优先调用可选参数还是固定参数?

先说结论:会优先调用固定参数,因为可选参数的调用优先级是最低的,只有没有其他选项的时候,才会调用可选参数。
举🌰:

public class Main {

    public void get(int a){
        System.out.println("我是固定参数");
    }
    public void get(int... a){
        System.out.println("我是可变参数");
    }
    public static void main(String[] args) {
        Main a = new Main();
        a.get(2);
    }
}
返回:
我是固定参数

🎈方法重写和方法重载有什么区别?

方法重写:方法重写是发生在父类和子类之间的。
方法重写遵循5点原则:相同方法名,相同参数个数和类型,修饰符重写的要大于等于被重写的范围,返回值类型重写的要小于等于被重写的,重写方法中抛出的异常要小于等于被重写的方法。

class A{
    public Number get(int a){
        System.out.println("被重写者");
        return a;
    }
}
public class Main extends A{

    public Number get(int a){
        System.out.println("重写者");
        return a;
    }
}

方法重载:方法重载是发生在同一个类之中的,向我们常见的构造函数重载。
重载最重要的就是和方法引用有关:方法引用由方法名+参数类型+参数个数组成。
重载要遵循的几点规则:方法名相同,对应的参数的类型和个数不同的方法是重载。

public class Main {

    public void get(int a){
        System.out.println("被重载者");
    }
    public void get(int a,int b){
        System.out.println("重载者");
    }
}

🎈this和super有什么区别?this能调用到父类吗?

this是用来调用当前类中的变量,super是用来调用父类的变量,一般我们子类在执行构造函数执行的时候,会现在最开是调用super()也就是父类的构造函数,所以this是不能直接调用父类而是通过super调用父类的。
注意:在构造函数中,super()是需要放到最上边执行的,如果放在下边会报错。

🎈List,Set,HashMap能存放null值吗

List:因为List是一个列表的形式,其内部可以存储多个null。
Set:因为Set是一个集合的形式,其内部只能存储一个null。
HashMap:因为key是唯一的,所以key中只能存储一个null,而value中可以存储多个null值。

🍚总结

这次就先回顾这四个,下次接着学习,希望有所帮助。