一、方法定义
修饰符+返回类型+方法名+参数列表+方法体
public void test(String name)
{
System.out.println("这是一个方法");
}
二、方法签名
方法的名称+参数列表就称为该方法的签名,如上面代码中test(String name)就称为方法签名
三、方法重载
1. 一个类中存在多个方法的名称一样但是签名不一样的现象就称为方法重载
2. 返回类型不影响方法重载,即签名一样返回类型不一样的话编译会报错
public class Test
{
public void test(String name)
{
System.out.println("这是一个方法");
}
public void test(int age)
{
System.out.println("这是一个方法");
}
public void test(String name, int age)
{
System.out.println("这是一个方法");
}
public void test(int age, String name)
{
System.out.println("这是一个方法");
}
}
四、为什么会重载
1. 英文单词这么多,为什么要用同一方法名,换着用不就可以用不到重载了?
2. 实际项目合作中,方法名一般用常见英语来代替,同时还会因为参数列表不同,实现内容不同的情况,因此就必须要用重载,
3. 如有一个注册方法regist(String name),但是若因为参数有可能是int,则还需要一个注册方法,若命名为regist1(int age),这样不太好看(若后面还有难道都命名为registN?),因此利用重载命名为regist(int age)即可
4.因此使用重载的意义就是在于合理化规范化
五、方法重写
1.只有类进行继承或者实现后,才会有重写的现象
2.重写的方法可以在方法上加@Override以作标识
3.当类继承某类或者实现某个接口,然后定义了一个与继承类(接口)一样的方法的时候,那么称类方法重写
4.如下面代码中EuropePeople类继承了People类,然后定义了一个eat方法与People的eat方法一样,因此就称EuropePeople类重写了方法
5.这里的一样是指返回类型和方法签名一致,修饰符和方法体可以不一样
6.子类的修饰符一定要比父类的修饰符权限更大,否则编译报错,如父类是public ,那么子类必须是public而不是private
public abstract class People
{
/**
* 吃饭的方法
*/
public abstract void eat();
}
public class EuropePeople extends People
{
@Override
public void eat()
{
System.out.println("欧洲人用叉子吃饭");
}
}