http://t.csdn.cn/psnQP
什么是继承?
继承是面向对象序设计中的三大特征之一。通过继承使得一个对象从另一个对象中获得属性。可以实现代码的重用。
继承的基本思想是基于某个父类扩展出一个新的子类。子类既可以拥有父类原有的属性和方法。也可以增加父类没有的属性和方法。或者直接对父类的方法进行修改。
在JAVA中用extends关键字表示一个类继承另一个类。格式如下:
[修饰符] class 子类名 extends 父类名{
属性和方法;
}
子类继承父类的原则:
子类可以继承父类的成员变量和成员方法,其中私有成员变量可以继承但不能直接使用,子类不可以继承父类的私有成员方法和构造方法。
解释:子类不能继承父类的构造方法,因为构造方法必须与类名相同。父类和子类的名字不同,因此子类和父类的构造方法也不会相同。
例:定义动物类Aminal、猫类Cat、狗类 Dog,狗类和猫类继承动物类。
这样Cat类和dog类内部虽然没有定义任何成员变量和成员方法,但是都可以使用动物类的成员变量和成员方法。
继承的优点:
- 提高了代码的可重用性。
- 提高了代码的可维护性,想要在猫类和狗类中都增加一个成员变量,只需要在动物类中增加这一属性即可。
继承的特点:
- 通过继承可以简化类的定义。
- JAVA只允许单继承,不允许多继承,但是支持多重继承。
-
可以有多层继承,即一个类可以继承某一个类的子类
-
如果子类的构造方法中没有显示的调用父类构造方法[super()],也没有使用this关键字调用重载的其它构造方法,则在产生子类的实例对象是,系统默认调用父类的无参构造方法.
-
final 修饰符.父类方法加了final 修饰符,在子类中不能重新定义,如果类前面加了final 修饰符,该类不能作为父类,不能被继承.
super关键字:
super键字用来访问父类的成员变量和成员方法也包括构造方法。
访问成员变量:super.成员变量
访问成员方法:super.成员方法(参数列表)
访问构造方法: super(参数列表)
注意,如果子类构造方法中调用super语句,那么super语句必须是第一条。先初始化父类,再初始化子类。
final关键字:
Final关键字可以修饰类成员变量和成员方法。
Final修饰类:
被final关键字修饰的类不能被继承,即不能有子类。
Final修饰成员变量:
如果一个成员变量被final关键字修饰,则这个成员变量将成为常量。且必须初始化,初始化之后不能改变。
Final修饰成员方法:
如果父类中的成员方法被final关键字修饰,那么他的子类将不能覆盖父类的方法。