概念:
1.一种类与类之间的关系
2.使用已经存在的类的定义作为基础建立新类
3.新类的定义可以增加新的数据或新的功能,也可以用父亲的功能,但不能选择性地继承父类
4.满足“A is a B”的关系就可以形成继承关系
特点:
1.利于代码复用
2.缩短开发周期
继承的实现
只能继承一个父类
用extends
子类可以无偿访问父类的非私有成员,而父类不可以访问子类特有成员
方法重载需满足:
1.同一个类中
2.方法名相同,参数列表不同(参数顺序、个数、类型)
3.方法返回值、访问修饰符任意
4.与方法参数名无关
方法重写与方法重载不同注意区分
方法重写:
a.有继承关系的子类中
b.方法名相同,参数列表相同(参数顺序、个数、类型),方法返回值可以允许是子类类型(可以向下兼容不可向上兼容)
c.访问修饰符,访问范围需要大于等于父类的访问范围
d.与方法的参数名无关
都要与父类继承的方法相同
访问修饰符
private:只允许在本类中进行访问
public:允许在任意位置访问
protected:允许在当前类、同包、跨包子类调用、跨包非子类不允许,同包下任意类型都允许
默认:在当前类允许、跨包子类/非子类不允许、同包子类允许、同包非子类允许
父类的构造不允许继承、不允许被重写
super关键字
父类对象的引用
a.访问父类成员方法 super.print();
b.访问父类属性 super.name;
c.访问父类构造方法 super();
子类构造默认调用父亲无参构造方法,可以通过suroer()调用父亲允许被访问的其他构造方法
super()必须放在放在子类构造方法有效代码的第一行
注意:
a.子类的构造的过程中必须调用其父类的构造方法
b.如果子类的构造方法中没有显式标注,则系统默认调用父类无参的构造方法
c.如果子类构造方法中既没有显式标注,且父类中没有无参构造方法,则编译出错
super PK this
super和this都不可以在static静态方法中使用
构造方法中,super和this 不能并存
this:当前类对象的引用
a.访问当前类的成员方法
b.访问当前类的成员属性
c.访问当前类的构造方法
d.不能在静态方法中使用
super:父类对象的引用
a.访问父类的成员方法
b.访问父类的成员属性
c.访问父类的构造方法
d.不能在静态方法中使用