一、什么是多态
指的是一个对象的多种形态,使用多态的前提为必须有类的继承和接口的实现
1.方法的重载和重写就是一种多态
2.子类对象的多态性
1)分类的引用指向的是子类的实例
2)在执行时,调用的是子类的方法;在编译时调用的时父类的方法
3)编译时看左边,运行时看右边
特点:安全性高
对象的多态性是什么?
一个对象多种形态;在Java中,子类的对象可以替代父类的对象使用。
二、方法重写
1.在继承关系的子类中
2.重写的方法名、参数、返回值类型必须与父类相同
3.私有方法不能继承因而也无法重写
对象转型:1.向上转型 2.向下转型
举例:Pet是父类,Dog是继承Pet类的子类。
Pet pet1=new Dog("小白", "泰迪"); //即为向上转型,现在pet1引用指向一个Dog对象
Dog dog1=(Dog) pet1; //为向下转型,现在pet1还是指向Dog对象
三、final关键字
可以修饰什么?
1.可以修饰类
2.方法
3.成员变量
4.局部变量
1.修饰类,这个类有什么特点?
这个类不能被继承,但是可以继承别的类
2.修饰方法
这个方法就是一个最终方法,不能被重写
3.修饰成员变量
成员变量的值不可改变
1)成员变量没有默认值了
2)如果使用final关键字必须赋初值
四、static关键字
1.在Java类中,可用static修饰属性、方法、代码块、内部类
2.被修饰后的成员具备以下特点:
4) 访问权限允许时,可不创建对象,直接被类调用
五、类变量
由类创建的所有的对象,都共用这一个属性
1.当其中一个对象对此属性进行修改,会导致其他对象对此属性的一个调用。
2.类变量随着类的加载而加载的,而且独一份
3.静态的变量可以直接通过“类.类变量”的形式来调用
4.类变量的加载是要早于对象。所以当有对象以后,可以“对象.类变量”使用。但是"类.实例变量"是不行的。
5.类变量存在于静态域中。