继承
概念:
-
一种类与类之间的关系
-
使用已存在的类的定义作为基础建立新类
-
新类的定义可以增加新的数据或功能,也可以用父类的功能,但不能选择性地继承父类,需全部把父类的东西继承过来。
-
子类只能继承父类非私有成员
特点:
1.利于代码复用
2.缩短开发周期
语法:
1.使用extends实现继承
2.单一继承,只能有一个父类
/*
* Dog 为子类 又名派生类
* Animal 为父类 又名 超类、基类
*/
class Dog extends Animal{
}
方法重载要求:
1.同一个类中
2.方法名相同,参数列表不同(参数顺序 、个数 、类型)
3.方法返回值、访问修饰符
4.与方法的参数名无关
方法重写要求:
1.有继承关系的子类中 ,子类重写父类方法
2.方法名,参数类型、顺序、个数 都要与父类的方法相同
3.方法返回值类型与父类兼容就可以,允许发生改变
4.访问修饰符,访问范围需要大于等于父类的访问范围
5.与方法的参数名无关
访问修饰符
-
公有的 public (允许任意位置使用)
-
私有的 private (只允许在本类中使用)
-
受保护的 protected (允许在当前类、同包子类/非子类、跨包子类调用、跨包非子类不能允许)
-
默认 (允许在当前类 同包子类调用;跨包子类/非子类不允许调用)
super关键字
super代表父类对象的引用,通过super访问父类的成员
父类的构造方法不允许被继承,不允许被重写,但是会影响子类实例化过程
继承后的初始化顺序(子类对象的实例化过程)
父类静态成员 → 子类静态成员 → 父类对象构造 → 子类对象构造
-
子类的构造的过程中必须调用其父类的构造方法
-
如果子类的构造方法中没有显示的标注,则系统默认调用父类的无参构造方法
-
如果子类的构造方法中既没有显示标注,且父类中没有无参的构造方法,则编译错误
-
使用super调用父类指定的构造方法,必须在子类构造方法的第一行
public Cat(String name, int age){
super(name, age);
}
this 和 super
this : 当前类对象的引用
-
访问当前类的成员方法、成员属性
-
访问当前类的构造方法
-
不能在静态方法中使用
super
-
访问父类的成员方法、成员属性
-
访问父类的构造方法
-
不能在静态方法中使用
this和super不能同时使使用
在继承(下)中会学习更深入的知识,敬请期待,很快更新。
网友评论