package day11;
/**
* 【问题】
* 父类的方法不太适合用于子类
* 【重写的概念】 //方法的重载只要求方法名相同,参数不许不同,其他可以相同
* 子类当中有和父类重名的方法,叫重写
* @Overrider 用来保证这个方法式重写的父类中的方法,开启严格检查,如果在父类
* 中没有这个方法会报错
*
* 【重写的注意事项】
* 1、重写的方法/函数必须是所有的参数,返回值,函数名,权限修饰符都必须相同
* 2、父类中如果使用private修饰的方法,那么这方法没有办法重写,原因是这个方法本身子类都没有继承
* 3、如果父类中的方法用public 修饰,子类用private修饰这种方法也不算重写
* 作业:
* 用java描述一个普通的学生,java基础班的学生,java就业班的 学生
*
* 这些学生都会学习
* @author Administrator
*
*/
class Father{
int age;
String name;
public Father() {}
public Father(int age,String name) {
this.age = age;
this.name = name;
}
//父亲会玩LOL()
public void LOL() {
System.out.println(name + ":老爹是英勇黄铜五");
}
}
class Son extends Father{
String id;
public Son() {}
public Son(int age,String name,String id) {
super(age,name); //用super关键字调用父类的构造函数来初始化父类的对象空间
this.id = id;
}
//这种不算继承,这是子类重新定义的一个方法
// public void LOL() {
// System.out.println(name + "儿子是最强王者");
// }
//
/*
* 为了保证是在父类的继承基础上来完成的方法【重写】
* 这时候要用一个关键字
* @Override
* 如果父类中没有这个方法,通过@Override就会发生报错
* */
@Override
public void LOL() {
System.out.println(name + ":儿子是嘴强王者~~~");
}
}
public class Test03 {
public static void main(String[] args) {
Son s = new Son(18 , "李亮亮","杀我的不发工资");
//子类的确可以调用父类的方法,但有时候 使用并不合适
s.LOL();
}
}