简述,说起java的特性,就应该本能的想起 抽象 封装 继承 多态。继承是四大特性之一
继承 :子类和父类之间的继承关系,子类可以获取到父类的属性和方法 私有方法不能继承。
如下有一段代码片段:
public static void main(String[] args) {
C c = new C();
}
}
class A {
public A(){
System.out.print("A ");
}
}
class B extends A{
public B(){
System.out.print("B ");
}
}
class C extends B{
public C(){
System.out.print("C ");
}
b类继承a类,c类继承b类 main方法实例化C类。然后打印出来就会输出A B C。一个典型的继承案例
在java 中值允许出现单继承,也就是说一个类只能继承一个父类,但是可以被多个类继承,即可以拥有很多子类,就像只能有一个父亲,却可以有多个儿子。
子类继承父类的成员变量:能够继承父类的public和protected成员变量;不能够继承父类的private成员变量;
子类继承父类的方法:能够继承父类的public和protected成员方法;不能够继承父类的private成员方法;
重写:
abstract class Planet {
protected void revolve() {
}class Earth extends Planet {
public void revolve() {
}
}
Earth 类继承了Planet 并且重写了revolve方法
重写有两个前提条件:继承和子父类中方法名称相同。 即重写必须发生在继承当当中,重写的方法名要与父类中的方法同名
java有四种访问权限,private<default<protected<public 从小到大 在子类继承父类时,子类的方法权限只能大于或等于父类的访问权限
例如:父类的权限为public 子类重写它的方法,修饰符只能为public (修饰符默认继承父类的方法) 如果父类方法的修饰符为
protected 则子类可以为
protected,也可以为public 下面有错误代码:
//正确案例
public class dome03 {
protected void revolve() {
}
}
class Earth extends dome03 {
public /*或者protected*/ void revolve() {
}
}
//错误案例
public class dome03 {
protected void revolve() {
}
}
class Earth extends dome03 {
default void revolve() {
}
}
个人学习,内容简略
来源:oschina
链接:https://my.oschina.net/u/4276152/blog/4307819