标签:
繼承:
繼承是JAVA中實現代碼重用的手段之一,JAVA中只支持單繼承,即每个类中只能有一个直接父类。继承表达式is a的关系。
方法的重写:
在子类中可以根据需求对从父类继承的方法进行重新编写,称为方法的重写。方法重写必须满足如下要求:
a:重写方法和被重写方法必须具有相同的方法名。
b:重写方法和被重写方法必须具有相同的参数列表。
c:重写方法和返回值类型必须和被重写方法的返回值相同或者是其之类。
d:重写方法不能缩小被重写方法的访问权限。
重写的主要优点是能够定义某个子类特有的特征:
public clsaa Father{
public void speak(){
System.out.println(Father);
}
}
public class Son extends Father{
public void sperk(){
System.out.println(){
}
}
这也叫做多态性,重写方法只能存在于具有继承关系中,重写方法只能重写父类非私有方法。
当上列中Father类中speak()方法被private时,Son类不能重写Father类sperk(),此时Son类sperk()方法相当于在Son类中定义的一个sperk()方法。
Father类speak()方法一但被fina时,无论该方法被public,protected及默认所修饰时,Son类根本不能被重写Father类sperk()方法,
试图编译代码是,编译器会报错。如下:
public class Father{
final public void sperk(){
System.out.println("Father");
}
}
public class Son extends Father{
public void speak(){
System.out.println("Son");
}
} //编译器会报错;
Father类speak()方法被默认修饰时,只能在同一包中,被其子类重写,如果不在同一包中则不能被重写。
Father类sperk()方法被protoeted时,不仅在同一包中,被其子类重写,还可以不同包的子类重写。
标签:
原文地址:http://www.cnblogs.com/LinHaoReign/p/5576296.html