类的继承就是子类继承父类所有的属性和方法,从而提高代码的重用性,减少冗余的代码,如果你懒得再写一遍同样功能的代码,那么好,用关键字extends继承吧!
但是,子类虽然继承了父类,但并不是说就能调用父类中所有的方法了,如果所调用方法的修饰符是private(受保护的),则只能在同类中可以调用,在同包或者不同包的情况下均不能调用,也就是说子类不能调用父类中private修饰的方法;如果所调用方法的修饰符是默认的(也就是没有),那么该方法可以再同类或者同包中被调用,如果不同包中就不行了;如果所调用方法的修饰符是protected(受保护的),则在同类或者同包中都能被调用,但是在不同包中只有在有继承关系的情况下才能被调用,也就是说子类可以在不同包中调用父类中protected修饰的方法;最后说public(公共的),public所修饰的方法在以上三种情况下都可以被调用,可谓大方至极!
如果你想写一段在已写代码的功能基础上增加了或者改变了某些功能的代码,那么同样用关键字extends大胆继承吧,然后重写方法就可以了,这样就能在原有基础上增加或者改变功能了。就好比儿子继承了国足老爸的运动基因,却在后天培养出了文学修养从而去写书也不错嘛!
不过说到重写,必须要存在继承关系。子类中方法的返回值类型,方法名,参数个数,参数类型,参数顺序必须要和父类的完全一致。子类重写方法的访问修饰符可以大于或者等于父类方法的访问修饰符。私有的方法是不能重写。创建的对象是子类的对象,那么会优先调用子类的方法,如果子类没有才会调用父类的方法。
此外,子类继承父类后,子类的对象可以自动转型为父类的对象。