Java面向对象之继承

继承是Java面向对象的一个重要特性,下面我们简单讲讲继承。




继承的特性

  • 子类拥有父类非private的属性,方法。

  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

  • 子类可以用自己的方式实现父类的方法,即方法的重写

  • Java的继承是单继承。


extends关键字

Java的继承由关键字extends来实现,格式如下:

//父类
public class SuperClass {
   public static void main(String []args) {
       ……
   }
}
 
//子类
public class SubClass extends SuperClass {
   ……
}

final关键字

final关键字可以修饰类、方法、变量:

  • final修饰类:该类不能被继承,即最终类。

  • final修饰方法:该方法不能被子类重写。

  • final修饰变量:该变量的值不能被修改,相当于一个常量。


super关键字

我们知道在子类中可以重写父类的方法,如果父类的方法被子类重写后,又要怎么调用父类中的方法呢?super关键字就能解决这一问题,调用格式很简单,就是super.method()。同时,super也可以用来访问父类中的属性和变量。


构造器

在继承中,当我们创建子类的对象时,要先调用父类的构造方法并创建一个父类的对象,然后再显示的调用子类的构造方法并创建子类的对象。但是,在继承中,子类并不能继承父类的构造器(构造方法或者构造函数),那么问题来了,子类要怎么调用父类的构造>方法呢?这时候,有两种情况:

  1. 父类的构造方法带有参数。此时,必须在子类的构造器方法中显式地通过super关键字调用父类的构造器并配以适当的参数列表,格式为super(参数1,参数2,....)

  2. 父类的构造方法不带参数,则在子类的构造方法中用super调用父类构造方法就不是必须的,如果没有使用super关键字,系统会自动调用父类的无参构造器。

注意:如果在子类的构造方法中,有用super关键字显示调用父类的构造方法,则这一句语句必须写在子类构造方法的第一句。




posted @ 2017-07-23 22:39  JackinHu  阅读(196)  评论(0编辑  收藏  举报