继承是父类(也叫基类)派生出子类的过程。子类通过继承后可以拥有父类中的所有属性和方法,但有一点由于访问控制的原因由private修饰符所修饰的属性和方法都无法被子类所访问。
继承的应用场景往是那些有着共同属性或行为(也叫方法)类,我们将这些共同的属性和行为单独抽出来变成一个泛型(泛:广泛的意思),每一个类都继承这个泛型,这样的结构对代码的维护非常有利。
比如说一个圆形,它本身是一个圆形但同时也是一个几何类型。如果所有的几何类都拥颜色、面积这两个属性的话那么我们可以先建一个Shape类里面有color、area这两个属性,我们让Circle这个类继承Shape,那么这个圆形就拥有了几何类型的属性。如果我还想要其它的类型那么只要是几何类型的都可以去继承Shape,这样下来是不灵活了很多。如果还是不明白可以这样考虑,我们以前创建类型都是先来一个圆形类再来一个正方形类,那么在调用代码里面就会这样写:
if(圆形类){
…
}elseif(正方形类){
…
}….
会不会发现很麻烦,而且如果我后期要加一个三解形呢或者我无限这么加下去最终你会发现一个事实,帮你写程序的人要提离职了,因为这么写实在太累人了。
子类继承了父类中的所有属性和行为就相当于你继承了你继承了父母的财产,你可以自由的去使用当不满足时你也可以去覆盖原有的方法重新编写自己的实现方式这在java里面叫重写(overriding)。
在继承中往也跟着另一种特性那就是多态,你可以认为多态是继承的产物(接口另当别论)。当圆形Circle继承了Shape时它既是一个圆形类型也是一个几何类型,我们可以通过几何类型向圆形去发出一系列的调用,比如说我要调用几何类型的color属性这时我们可以这么写:
public void getColor(Shape shape){
System.out.print(shape.color)
}
我们可以将圆形、正方形或者三角形等对象传入到几何类型这个参数中去,然后在调用color属性时会自动去调用圆形对象的color属性,这就是多态。
关于多态的好处,大家可以自己体会,你会发现这会让你很兴奋。
java编程思想-继承心得
最新推荐文章于 2024-10-05 00:37:35 发布