继承(面向对象篇)

来源:互联网 发布:c语言模块化程序设计 编辑:程序博客网 时间:2024/06/14 16:29
继承的概念:
继承是java面向对象编程中的基石,它允许创建分层次的类。继承是子类继承父类的特征和行为,使得子类对象具有父类的实例域和方法,或者子类直接继承父类的方法,使得子类具有父类相同的行为。
生活中的继承:
老鼠和猫都是动物类,老鼠和猫就是动物类的子类,而动物类就是父类,继承的符合关系是:is-a.
在java中实现继承的关键字是extends,它可以声明一个类是从另外一个类继承而来的。格式如下:
class 父类{}
class 子类 extends 父类{}
继承的特性:
子类拥有父类非private的属性和方法。
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
子类可以用自己的方式实现父类的方法。
Java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如A类继承B类,B类继承C类,所以按照关系就是C类是B类的父类,B类是A类的父类,这是java继承区别于C++继承的一个特性。
子类不能继承父类的构造器(构造方法或者构造函数),但是父类的构造器带有参数的,则必须在子类的构造器中显式地通过super关键字调用父类的构造器并配以适当的参数列表。如果父类有无参构造器,则在子类的构造器中用super调用父类构造器不是必须的,如果没有使用super关键字,系统会自动调用父类的无参构造器。
继承的好处:
在不同的类中也可能会有共同的特征和动作,可以把这些共同的特征和动作放在一个类中,让其它类共享。因此可以定义一个通用类,然后将其扩展为其它多个特定类,这些特定类继承通用类中的特征和动作。
继承是 Java 中实现软件重用的重要手段,避免重复,易于维护,易于理解。
继承中所涉及到的关键字:super和this
super关键字:
super 表示使用它的类的父类。super 可用于:调用父类的构造方法;
调用父类的方法(子类覆盖了父类的方法时);
访问父类的数据域。
super 语句必须是子类构造方法的第一条语句。不能在子类中使用父类构造方法名来调用父类构造方法。 父类的构造方法不被子类继承。调用父类的构造方法的唯一途径是使用 super 关键字,如果子类中没显式调用,则编译器自动将 super(); 作为子类构造方法的第一条语句。这会形成一个构造方法链。
静态方法中不能使用 super 关键字。
调用父类的方法语法:super.方法名(参数列表);
this 关键字:
this 关键字表示当前对象。可用于:
调用当前类的构造方法,并且必须是方法的第一条语句。如:this(); 调用默认构造方法。this(参数); 调用带参构造方法。

限定当前对象的数据域变量。一般用于方法内的局部变量与对象的数据域变量同名的情况。如 this.num = num。this.num 表示当前对象的数据域变量 num,而 num 表示方法中的局部变量。

继承的小实例:


4 0
原创粉丝点击