浅谈继承
1.为什么需要有继承?(个人理解)
因为在编写程序的过程中会有重复的代码,而为了减少程序员的重复的工作量,减少程序的冗余,让程序变的更简洁,便有了继承,而且这更能反映现实世界的关系,印证了程序是现实世界的表现形式。
2.如何继承?继承到了什么?
在程序申明类的时候用“子类名 extends 父类名”即可继承。子类继承了父类的属性和方法,子类可以直接使用,也可以重写父类的方法。
注:方法重载与方法重写
重载:在同一个类里面,可以新建一个方法名相同,但方法的参数类型,个数或者顺序不同的方法称为重载。
重写:必须是在子类继承了父类后(在不同的但有关联的两个类中),可以新建一个方法名相同,参数相同,但方法体不同的方法称为重写。
3.类的继承与接口实现中的特点与区别
类的继承:a.用的是extends关键字来实现继承;b.只能单根继承;c.一个类中的方法只能是这个类及其子类才能调用,子类的方法只能是子类类型才能调用;d.若子类重写了父类方法,则会调用重写之后的子类中的方法,但首先要检测对象的类型必须为子类类型,对象自动转型之前为子类的也能调用子类重写的父类的方法.
接口实现:a.类实现接口用implements实现,使用的时候必须先重写;b.接口实现接口用extends实现,并且都能实现多个接口;c.接口中的方法是抽象方法,没有方法体,在类中实现时必须全部重写实现;
1.一个class只能继承一个class,单根继承
public class A{}
public class B extends A{}
2.一个interface可以继承多个interface
public interface C{}
public interface D{}
public interface E extends C,D{}
3.一个class可以实现多个interface
public class F implements C,D{}
4.一个class可以在继承一个class以后在实现多个interface
public class G extends A implements C,D{}
接口的方法是抽象方法,没有具体的方法体,若当C,D两个接口中出现同名的抽象方法时,必须由class类来调用实现该方法,因此根本不用担心调用的是哪个接口中的方法,对于程序无任何影响,只需要在实现接口的类中重写方法体即可。