继承是面向的对象程序设计的一个主要特征。
Java只支持单继承(类与类),不支持多继承。
也就是说,Java的子类只能有一个父类,不能有多个父类。
因为,当两父类有同一功能时,子类不知道继承哪一父类。
但,Java支持多重继承。eg.student继承person,person继承animal。
Java继承的规则:
1.Java子类可以继承父类的所有非私有的属性和方法,也就是引用权限为public的属性和方法。
2.Java子类可以拓展父类的成员属性和成员方法。
3.Java子类可以重写父类的成员方法(方法名一样,内容不一样)。重写后,系统会自动覆盖原先父类的方法。方法重写(子类的权限>=父类的权限)。如果子类要访问父类被重写过的方法,用super关键字访问。
4.访问子类继承父类的成员属性和方法,与访问子类自身定义的属性和方法一样。
5.实例化子类对象时,要先实例化父类对象。
子类和父类都有构造方法,先执行父类的构造方法,再子类。且,在调用父类构造方法时,会自动调用无参的构造方法。
tips:(多态)类的向下向上型,子类对象可以赋值给父类类型。类定义基础下,可以:
Teacher TC1=new Teacher();
Person TC1=new Teacher();//定义一个父类对象,用子类实例化
Person TC12=(Teacher)TC2;//由于TC2本身就是一个子类对象
Person TC4=new Person();//TC4无法通过强制类型转换赋给Teacher对象
但不能定义Teacher对象、用Person实例化,下面定义是错误的:
Teacher TC3=new Peason();
即可以定义一个父类对象、用子类实例化;不能定义一个子类对象、用父类实例化。