Java⽅法的重写举例_Java基础之:⽅法重写
Java基础之:⽅法重写
⽅法重写(覆盖),就是在⼦类中有⼀个⽅法与⽗类中的⽅法,有⼀样的⽅法名,返回类型,参数列表。那么我们就说⼦类的⽅法重写(Override)了⽗类的⽅法。
简单案例
class A{
public int AA(int n1,intn2){
return n1 + n2;
}
}
class B extends A{
//这时,我们就说 ⼦类B 的 AA⽅法,重写了 ⽗类 A的AA⽅法
//@Override 注解: 作⽤是标记 ⽅法重写了, 如果不满⾜重写规则,就会报错
@Override
public int AA(int n1,int n2){
return n1 - n2;
}
}
⽅法重写细节注意
⼦类的⽅法的参数,⽅法名称,要和⽗类⽅法的参数,⽅法名称完全⼀样。
⼦类⽅法的返回类型可以是⽗类⽅法的返回类型的⼦类,例如 若⽗类⽅法返回Object类型,那么⼦类⽅法可以设置返回类型为String类型。(jdk5.0的特性)
⼦类⽅法不能缩⼩⽗类⽅法的访问权限。例如⽗类⽅法是public修饰的,那么⼦类也只能是public修饰的。⽗类⽅法是portected修饰的,⼦类⽅法可以是public或protected修饰的。
简单案例
class AA {
public void say(String name) {
System.out.println("AA say() " + name);
}
public Object hi() {
return new Object();
}
void run() {
System.out.println("");
}
}
class BB extends AA{
//⼦类的⽅法的参数,⽅法名称,要和⽗类⽅法的参数,⽅法名称完全⼀样
public void say(String name) {
System.out.println("BB say() " + name);
}
//⼦类⽅法的返回类型需要和⽗类⽅法返回类型⼀样,或者是⽗类返回类型的⼦类
public String hi() {
return "";
}
//⼦类⽅法不能缩⼩⽗类⽅法的访问权限
/
/⼀代更⽐⼀代强
public void run() {
System.out.println("");
}
}
重写与重载
简单练习
编写⼀个Person类,包括属性/private(name、age),构造器、⽅法say(返回⾃我介绍的字符串)。
编写⼀个Student类,继承Person类,增加ID、Score属性/private,以及构造器,定义say⽅法(返回⾃我介绍的信息)。编写Test类,分别创建Person和Student对象,调⽤say⽅法输出⾃我介绍。
package override.ClassWork;
public class Override_ClassWork {
public static void main(String[] args) {
Person person = new Person("⼩范",20);
Student student = new Student("⼩黄",18,1001,123);
System.out.println(person.say());
System.out.println(student.say());
}
}
//编写⼀个Student类,继承Person类,增加ID、Score属性/private,
//以及构造器,定义say⽅法(返回⾃我介绍的信息)。
class Student extends Person{
private int ID;
private int Score;
public Student(String name, int age, int iD, int score) {
super(name, age);
ID = iD;
Score = score;
}
public Student() {
java重写和重载的区别
super();
}
@Override
public String say() {
return super.say()+" ID:"+ID+" Score:"+Score;
}
}
//编写⼀个Person类,包括属性/private(name、age),构造器、⽅法say(返回⾃我介绍的字符串)。class Person{
private String name;
private int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Person() {
super();
}
public String say() {
return "name:"+name+" age:"+age; }
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论