在Java中,为了减少重复写代码,提高程序的扩展性,我们会使用类的继承。类的继承包括父类和子类。其格式为:
public class 类名(子类) extends 类名(父类){
}
继承的关键字是extends。但是在Java中,继承是单继承,一个类只能有一个直接的父类,但父类可以被多个子类继承。子类继承了父类所有的属性和方法,但在调用的时候却有一定的限制。
private 只能在当前类中调用;default 只能在当前包中调用; protected 可以在当前包中调用,也可以是当父类和子类不在同一包中时,在子类中调用; public则是无论怎样都可以调用。
但在调用方法时,也可能出现父类和子类方法不同的情况,这个时候就需要用到方法重写。方法重写的必须条件有两个,1是必须存在继承关系,2是方法的访问修饰符,返回值数据类型,方法名,参数个数,参数类型,参数顺序必须要一样。除了方法不同外,还要看实例化时会调用谁的方法,如果实例化子类,则首先调用子类的方法,当子类中没有该方法时才会调用父类的方法,例如:(Student是父类,GStudent是子类)
Student stu=new GStudent();
这种实例化尽管是创建父类的对象,但实例化的是子类的方法,所以会调用子类的方法。
对于自动转型,只有在存在继承关系时才能自动转型,而且这种情况下不能调用父类中没有,而子类定义的方法。自动转型的格式为:
父类名 对象名=new 子类构造方法()
总之,类的继承减少了我们敲代码的时间,是Java中很不错的设计啊!!
public class 类名(子类) extends 类名(父类){
}
继承的关键字是extends。但是在Java中,继承是单继承,一个类只能有一个直接的父类,但父类可以被多个子类继承。子类继承了父类所有的属性和方法,但在调用的时候却有一定的限制。
private 只能在当前类中调用;default 只能在当前包中调用; protected 可以在当前包中调用,也可以是当父类和子类不在同一包中时,在子类中调用; public则是无论怎样都可以调用。
但在调用方法时,也可能出现父类和子类方法不同的情况,这个时候就需要用到方法重写。方法重写的必须条件有两个,1是必须存在继承关系,2是方法的访问修饰符,返回值数据类型,方法名,参数个数,参数类型,参数顺序必须要一样。除了方法不同外,还要看实例化时会调用谁的方法,如果实例化子类,则首先调用子类的方法,当子类中没有该方法时才会调用父类的方法,例如:(Student是父类,GStudent是子类)
Student stu=new GStudent();
这种实例化尽管是创建父类的对象,但实例化的是子类的方法,所以会调用子类的方法。
对于自动转型,只有在存在继承关系时才能自动转型,而且这种情况下不能调用父类中没有,而子类定义的方法。自动转型的格式为:
父类名 对象名=new 子类构造方法()
总之,类的继承减少了我们敲代码的时间,是Java中很不错的设计啊!!