重载
方法的重载就是在同一个类中定义了多个同名的方法,但有着不同的形参(即形参的个数不同或形参的类型不同)
package ChongZai;
public class TestChongZai {
public static void main(String[] args) {
// TODO Auto-generated method stub
test1 t=new test1();
t.testprint();
t.testprint(10);
t.testprint(2,1);
t.testprint("awdawd");
}
}
class test1{
public void testprint() {//无形参
System.out.println("重载一");
}
public void testprint(int a) {//int a为形参
System.out.println("重载二 "+a);
}
public void testprint(int a,int b) {//与二形参个数不同
System.out.println("重载三 "+a+" "+b);
}
public void testprint(String a) {//与二形参类型不同
System.out.println("重载四"+a);
}
}
覆盖
方法的覆盖是当子类和父类中存在同名方法,并且两个方法的声明部分完全相同时才能实现。
package ChongZai;
public class TestChongZai {
public static void main(String[] args) {
// TODO Auto-generated method stub
test t1=new test();
test1 t2=new test1();
t2.testprint();
t1.testprint();
t2.testprint();
}
}
class test1{
public void testprint() {
System.out.println("未覆盖");
}
}
class test extends test1{
public void testprint() {//覆盖父类test1中的同名方法
System.out.println("覆盖");
}
}
重载与覆盖的对比
方法的重载 | 方法的覆盖 |
---|---|
同一个类中 | 父类、子类 |
方法同名 | 方法同名 |
参数不同 (参数的个数或类型不同) | 参数相同 |
final修饰符
final | 意义 |
---|---|
final class 类 | 最终类 (不能派生子类) |
final 返回值类型 方法名() | 最终方法(不能被重载) |
final 数据类型 变量名 | 常量 |