方法重写
概述
.子类中出现了和父类中一样的方法声明
应用
.当子类需要父类中的功能,而功能主体子类有自己的内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的功能
@Override
.这是个注解,注解表明下面我们这个方法,就是用了方法重写,如果不是,则就报错!!decorate装饰器说明这个方法和父类中的方法肯定有不一样的地方
重写的注意事项
.私有方法不能被重写(父类私有成员,子类是不能继承的)
.子类的访问权限不能更低(public > 默认 > 私有)
以下案例有三个类,分别为 phone类 newphone类 phonedemo类(测试类)
phonedemo类(测试类)
package 方法重写;
public class phoneDemo {
/*
方法重写
概述
.子类中出现了和父类中一样的方法声明
应用
.当子类需要父类中的功能,而功能主体子类有自己的内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的功能
@Override
.这是个注解,注解表明下面我们这个方法,就是用了方法重写,如果不是,则就报错!!decorate装饰器说明这个方法和父类中的方法肯定有不一样的地方
重写的注意事项
.私有方法不能被重写(父类私有成员,子类是不能继承的)
.子类的访问权限不能更低(public > 默认 > 私有)
*/
public static void main(String[] args) {
phone phone = new phone();
// TODO 自动生成的方法存根
phone.call("刘德华");
newPhone newPhone = new newPhone();
newPhone.call("林青霞");//只执行了方法之中的call功能
// newPhone.calll("郭富城");
}
}
newphone类
package 方法重写;
public class newPhone extends phone {
// public void call(String name) {
// // TODO 自动生成的方法存根
// System.out.println("开启视频功能");
System.out.println("给"+name+"打电话");
// super.call(name); //不要重复此功能,只需要把这个参数值传递到父类即可!!
//
// }
@Override //这是个注解,注解表明下面我们这个方法,就是用了方法重写,如果不是,则就报错!!decorate装饰器说明这个方法和父类中的方法肯定有不一样的地方
public void call(String name) {
System.out.println("开启视频功能");
// System.out.println("给"+name+"打电话");
super.call(name); //不要重复此功能,只需要把这个参数值传递到父类即可!!
}
}
phone类
package 方法重写;
public class phone {
public void call(String name) {
// TODO 自动生成的方法存根
System.out.println("给"+name+"打电话");
}
}