多态
访问权限修饰符:
四个访问权限修饰符:范围从大到小 Public protected default private
修饰类: public default
Public(全局修饰符):所有类都可以访问(不同包下面要导包)
Default(包权限修饰符):同一个包下面可以访问
修饰成员:Public protected default private
Public:所有类都可以访问
Protected:(子类权限修饰符):同一个包下面和不同包下的子类
Default:只能在同一个包下面才能访问
Private:只有当前类才可以访问
Final修饰符:最终
修饰类:不能被继承 比如Math类,String类
修饰成员变量或者局部变量都是不能被修改值
注意:修饰引用的时候,不能重新被new, 地址不能改变
修饰方法:这个方法不能被重写 比如Object类当中的getClass方法
多态:
1、什么叫多态:一种对象对应多种状态 Animal a = new Cat() 向上转型
2、前提
1、必须有继承关系,或者实现关系
2、必须有方法重写
3、父类引用指向子类对象
3、多态的好处:
提高了代码的扩展性:
扩展性:同一个方法可以接收不同类型的数据
4、多态成员中运行效果
1、成员方法:Fu f = new ZI(); //因为方法进行重写
F.eat() 调用子类的方法
编译看左边,运行看右边
2、成员变量: Fu f =new ZI() syso f.num//父类中num,因为成员变量不存在重写
编译看左边,运行也看左边
5、多态的弊端
父类引用不能访问子类的特有方法
怎么解决? 向下转型 Animal a = new Cat() Cat c = (Cat)a
1:抽象方法:只有方法声明,没有方法体
2:抽象类:当一个类中有抽象方法的时候,就必须声明为抽象类
3:抽象类的特点:
1、用abstract修饰
2、抽象方法的类一定是抽象类,但是抽象类中不一定有抽象方法
3、抽象类不能被实例化,因为实例化之后访问到的方法没有方法体,没有意义
4、如果一个类继承一个抽象类,那么这个类要么是抽象类,要么是重写了父类的所有抽象方法
抽象类成员特点:
1、成员变量:成员变量,常量
2、有构造器,但是不能创建对象。
3、可以有抽象方法,和非抽象方法
抽象方法是子类必须要重写,非抽象方法是解决代码复用,被子类继承