Java面向对象_4.Java继承上
- 一、继承
- 1.一种类与类之间的关系
- 2.继承的关系
- 3.特点
- 二、继承的实现
- 1.extends
- 2.Java单继承
- 3.注意
- 三、方法的重写
- 1.重写和重载
- 2.重写的条件
- 3.注意
- 四、访问修饰符
- 1.四种访问修饰符
- 五、super关键字的使用
- 2.顺序
- 3.注意
- 4.this和super
一、继承
1.一种类与类之间的关系
使用已存在的类的定义作为基础建立新类。
子类(派生类) —> 父类(基类)
新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
2.继承的关系
满足“A is B”的关系就可以形成继承关系。
3.特点
(1)有利于代码复用。
(2)缩短开发周期。
二、继承的实现
1.extends
class 子类名称 extends 父类名称{
//子类特有的属性和方法
}
2.Java单继承
只能继承一个父类。
3.注意
子类可以访问父类非私有成员
父类不可以访问子类特有成员
三、方法的重写
1.重写和重载
重载:同一个类,方法名相同,参数列表不同(顺序、个数、类型),返回值、访问修饰符无关,与参数名无关。
重写:返回类型、方法名、参数列表(顺序、个数、类型)都要与父类继承的方法相同。
2.重写的条件
(1)有继承关系的子类中
(2)方法名相同,参数列表相同
(3)访问修饰符:
方法的访问修饰符是可以允许有变化的,访问范围需要大于等于父类的访问范围
(4)与方法的参数名无关
3.注意
只能重写方法
但是在子类中,可以定义与父类重名的属性。
四、访问修饰符
1.四种访问修饰符
公有的:public:允许在任意位置访问
私有的:private:只允许在本类中进行访问
受保护的:protected:除跨包且非子类不允许,其余都允许
默认:允许同包,不允许跨包。
访问修饰符 类 包 子类 其他
public ∨ ∨ ∨ ∨
protect ∨ ∨ ∨ ×
default ∨ ∨ × ×
private ∨ × × ×
五、super关键字的使用
public class Dog{
public void sleep(){
eat();//Dog中的eat
}
}
调用父类中的eat:
super.eat();
super作用:父类对象的引用。
父类的构造方法不允许被继承,重写,但是会影响子类对象的实例化。
2.顺序
父类静态成员->子类静态成员->父类对象构造->子类对象构造
3.注意
子类构造默认调用父类无参构造方法
可以通过super(name,month)调用父类允许被访问的其他构造方法。
super()必须放在子类构造方法有效代码的第一行。
子类的构造过程中必须调用其父类的构造方法,如果子类的构造方法中没有显式标注,则系统会默认调用父类无参构造方法。
如果子类构造方法中既没有显式标注,且父类中没有无参的构造方法,则编译报错。
4.this和super
this和super不能共存。
都不能在静态方法中使用。