JAVA中的继承,和C++里面的继承也是一样的。继承是面向对象的基本原则,主要目的是代码复用,减少代码的冗余,提高程序的拓展性。通俗一点说,当你想要新定义一个类,而这个类又包含了之前已经定义好了的另外一个类的所有属性与方法时,就可以用到类的继承了。但是话说回来,若是这个新类与原有的类一模一样,那么这个类也就没有意义了,所以,继承的同时就免不了定义新的属性或是重写方法,是这个类与原来的类有所不同。在继承中,原来的类叫做“父类”,而新定义的类叫做“子类”,子类继承了父类。
打个比方,所有的手机可以看作一个手机类,那么所有的Iphone组成的Iphone类就是继承了手机类,继承了手机类的所有属性与方法。而iPhone的IOS系统与其他手机的android或者wp都有所不同,这可以看成是方法的重写,修改了原有的方法。 转换成java代码如下:
public class Cellphone {
private a;
private b;
……
//定义方法:
public void system(){
System.out.println("各种操作系统");
}
}
public class IPhone extends Cellphone {
private a;
private b;
……
//重写方法:
public void system(){
System.out.println("ios操作系统");
}
}
这里面,extends是继承的一个关键词,意思是IPhone类继承了Cellphone类。
另外,还有一点我觉得也要注意。当一个方法需要的参数类型是一个父类时,你也可以给予ta一个子类对象作为参数,是没问题的~因为这里,子类可以理解为一个特殊的父类。从这里看来,子类与父类的关系又并不完全类似于现实生活中儿子父亲的关系了,需要注意!