这系列博文主要是将自己之前学习的一些java基础内容进行归纳与总结。
方法定义:在类中具有特定功能的一段独立的程序。
组成:访问修饰符 非访问修饰符 返回值 方法名 (形参…){ // 方法体 return 返回值}
public static void printName(String name){
System.out.println(name);
return;
}
修饰符 :
访问修饰符(public 、protected、default、private)
非访问修饰符(static、final、abstract、synchronized)
关键字:
void (表明该方法没有返回值)
return (用于结束方法并将结果返回给调用者)
方法的重载一个类中出现同名的方法,只要它们的参数个数或者对应位的类型不同,就叫做重载,与返回值类型和修饰符无关
例:
public String getName(Integer val, String val2){
return val + val2;
}
public String getName(String val2, Integer val){
return val2 + val;
}
匹配优先级
public static void main(String[] args) {
overload(1);
}
// (1) 精确匹配
public static void overload(int param){
System.out.println("第一级匹配");
}
// (2) 如果是基本数据类型,通过向上转型匹配
public static void overload(long param){
System.out.println("第二级匹配");
}
// (3) 通过自动装箱匹配
public static void overload(Integer param){
System.out.println("第三级匹配");
}
// (4) 通过向上转型并装箱匹配
public static void overload(Long param){
System.out.println("第四级匹配");
}
// (5) 通过子类向上转型继承线路依次匹配
public static void overload(Object param){
System.out.println("第五级匹配");
}
// (6) 通过可变参数匹配
public static void overload(Integer ...param){
System.out.println("第六级匹配");
}
方法的重写
当子类中出现和父类一模一样的方法时,子类对象运行的是子类的方法,这种现象称之为重写
子类重写父类的方法必须遵从“两同两小一大”的规则
两同:即方法名,形参列表相同
两小:即子类返回值类型和异常要小于等于父类(这里的比较是指继承关系)
一大:子类的访问修饰符要大于等于父类的访问修饰符(这里的比较是指访问权限)
public class Father {
protected Number getAge(int i) throws Exception{
return 50;
}
}
class Son extends Father{
@Override
public Integer getAge(int i) throws RuntimeException {
return 25;
}
}
被static、final、private修饰的成员不能被重写
静态方法不具备多态性,如果子类有和父类一样的静态方法,只是把父类的方法隐藏了并不是重写
public static void main(String[] args) {
Father f = new Son();
try {
// 还是执行父类方法,如果是重写根据多态执行的应该是子类的方法
System.out.println(f.getAge(0)); // 50
} catch (Exception e) {
e.printStackTrace();
}
}
拧螺丝的工具人
原创文章 7获赞 0访问量 6517
关注
私信
展开阅读全文