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("AA run...");

}

}

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("BB run...");

}

}

重写与重载

281dc545ecd64de4bc845b5a542f02fa.png

简单练习

编写一个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() {

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;

}

}

066b4b626dac8b6d317a1d2badb840b9.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值