简述,说起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() { } }
个人学习,内容简略