继承
一.继承的概念
如何去快速生成构造
alt+shift+s: 选择构造的模板。
注: 删除当前行 ctrl+D
二.子类重写父类的方法
在Java中,实现多态的条件是非常简单的。
父类(普通类)
方法(普通方法)
子类 extends 父类
方法(普通方法 ----->和父类某个方法同名)
结论:
父类 父类对象=new 子类对象();
父类对象.方法名称()(父子都有) 一定打印出子类方法体内容
二.1 自己修改模板 template
二.2 super
super()父类的构造
super.父类的属性 或者方法 。必须是非私有的(protected,public)
二.3 父类的哪些内容不能被子类继承
三.抽象类和抽象方法的注意事项
案例:实现不同宠物 吃东西方法
public abstract class Pet{
public abstract void eat();
}
public class Cat extends Pet{
@Override
public void eat(){
syso("dog Eat");
}
}
public class Penguin extends Pet{
@Override
public void eat(){
syso("Penguin Eat fish");
}
}
Pet[] pets=new Pet[2];
Cat cat=new Cat();
Penguin penguin=new Penguin();
pets[0]=cat;
pets[1]=penguin;
for(Pet pet:pets){
pet.eat(); 子类重写父类的eat方法 多态的体现
}
三. 抽象类和抽象方法的注意事项
1.抽象类中可以有抽象方法,也可以有非抽象方法
2.抽象方法中没有方法体,直接以分号结束
3.抽象方法必须在子类中重写,除非子类本身也是一个抽象类
4.如果用Abstract修饰,那么该类就是抽象类
5.抽象类不能被实例化
6.抽象类不能是静态类
7.抽象类可以有构造
8.抽象方法只能出现在抽象类中
9.抽象方法只是用来约束子类方法行为的
四.final修饰属性,方法,类
final修饰属性:不能再次赋值
final修饰方法: 方法不能被重写
final修饰类,类不能被继承
public static final String NAME="xxxx"; //常量:不允许修改值
五.继承关系下子类构造的执行过程
解析:
1.从Main---->子类构造不进入方法体
2.从子类构造------>父类构造
3.执行父类构造 ,创建了父类对象
4.回到子类构造,执行构造体
5.再回到Main。创建出对象