(一)概念
1、一个新类从已存在的类中获得了其中符合继承条件的属性和方法;
2、其中新类叫子类(派生类),已存在的类叫父类(基类)。
(二)意义
1、代码得到了极大的重用,减少代码量;
2、形成一种类的层次体系结构;
3、为多态创造条件。
(三)实现方式
通过extends实现:
class A{
int i;
Sring name;
public void f(){
System.out.printf("AAAA");
}
}
class B extends A{
//B类中已经有A类中属性i、name、方法f
}
(四)继承条件
1、同包:子类可以继承父类的非私有成员(包括:非私有属性和非私有方法);
2、不同包:用publib和protected访问修饰符的类,其中非私有成员可被继承。
(五)注意事项
1、java只支持单继承,不支持多继承;(单继承就是只有一个父类,多继承就是有多个父类。ps:目前仅有c++支持多继承)
2、子类无法继承父类的构造方法,但可以通过super调用父类的构造方法;
3、super在继承中使用时,只能用在子类构造函数内的第一条语句,并且super(参数个数)中括号内参数个数必须保证在父类中存在一致数量参数的构造方法,当子类的构造方法中无super时,则程序自动补充super();
class A{
public A(){
System.out.printf("AAAA");
}
public A(int i){
System.out.printf("BBBB");
}
}
class B extends A{
super();//输出AAAA
//super(1);//若未屏蔽前面一条语句则erorr,屏蔽输出BBBB
//super(1,2);//erorr父类A中无两个参数的构造方法
}
(六)方法重写
1、定义:
a、子类定义父类已有的方法;
2、条件:
a、重写方法必须与被重写方法具有一样的名字、参数(数量、类型)、返回值;
b、重写方法不能使用比父类中被重写的方法更严格的的访问权限;(保证多态的成立)