publicclassMyTest{
publicstaticvoidmain(String[] args){
//方法重写时,需要注意的事项。//1.父类私有的方法,子类不能重写,私有方法,子类不能继承//2.父类构造方法,不能重写,构造方法没有继承一说。//3.子类在重写父类方法时,方法的权限修饰符,// 不能比父类的低可以跟父类的一样,或者比父类的高//public>protected>缺省的>private//4.静态方法,不参与重写
Father.haha();
Son son =newSon();
son.haha();
Son.haha();}}classFather{
privatevoidshow(){
}protectedvoidhehe(){
}publicstaticvoidhaha(){
System.out.println("父类的静态方法");}}classSonextendsFather{
@Override
protectedvoidhehe(){
}//@Override 静态方法不参与重写publicstaticvoidhaha(){
System.out.println("子类的静态方法");}}
5.final关键字
final关键字是最终的意思,可以修饰类,变量,成员方法。
final修饰特点
修饰类: 被修饰类不能被继承
修饰方法: 被修饰的方法不能被重写
修饰变量: 被修饰的变量不能被重新赋值,因为这个量其实是一个常量
publicclassMyTest{
//公共的静态常量publicstatic final double AA=3.14;//自定义常量publicstaticvoidmain(String[] args){
//final 最终的,可以修饰成员变量,局部变量,形参,也可以修饰方法,也可以修类//修饰变量,此变量为一个常量,既然为常量,常量的值就不能再次被改变。//自定义常量,常量名一般建议大写
final int NUM=100;//NUM=200; //重新赋值,报错,常量不能再次赋值
System.out.println(NUM);
double aa = MyTest.AA;
System.out.println(aa);BB bb =newBB();
System.out.println(bb);
bb=newBB();
System.out.println(bb);
System.out.println("============================");
final BB bb1 =newBB();//final修饰的是基本类型,指的是值不能再次被改变。//final修饰的是引用数据类型,指的是这个地址值,不能再次被改变//final修饰方法,此方法,不能被子类重写,但是可以让子类继承去用CC cc =newCC();
cc.show();//final 修饰类,此类不能被继承}}classBB{
public final voidshow(){
System.out.println("父类的final修饰的方法,子类不能重写,子类可以继承");}}classCCextendsBB{
/* @Override
public void show() {
}*/}//final修饰类,此类不能被继承
final classEE{
}/*
class FF extends EE{
}
*/