继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

final关键字,protected关键字,抽象类,多态,方法重写

小泡泡
关注TA
已关注
手记 43
粉丝 51
获赞 617

final
最终的变量,常量,可以有两种形式给他赋值
第一种,定义变量的同时,初始化一个值
第二种,定义变量的时候,不给值,但是可以通过构造方法里面赋值
但是永远记住,final的成员变量,只能被赋值一次
基本数据类型作为形式参数,使用final关键字,来修饰 形式参数
形式参数引用的对象不能改变(值)
引用类型(数组,类,接口)作为形式参数,加final修饰形式参数
形式参数引用的对象不能再改变(地址值)
但是是可以改变对象的成员变量的值的
protected:
子类可以直接访问,父类本身也可以访问,同一包下,也可以访问,但是不同包之间是不能访问的
抽象类
被abstract类修饰的类,就是抽象类
抽象类的特点:
A:抽象类不一定有抽象方法,有抽象方法的类一定是抽象类
B:抽象类不能实例化,不能创建抽象类的对象
我们可以通过多态的形式,让抽象类的引用,指向子类对象
C:抽象类的子类
要么还是抽象类
要么是 具体类,并实现所有的抽象方法.
抽象类的构造方法,是让子类对象,来通过构造方法初始化父类的成员变量用的。
注意事项:
1:private 不能和abstract 一起修饰方法或者修饰类
2:final 不能和abstract 一起修饰方法或者修饰类
3:static 不能和abstract 一起修饰方法
具体方法

public void eat(){
System.out.println("Animal类型 eat()方法");
}

抽象方法,没有方法体(没有{}),并且 用abstract修饰
多态
概念:同一个事物,在不同条件下的不同表现形式

举例:生活中的例子 水,固态,液态,气态

java世界中的例子:

 Cat cat = new Cat();// 创建一个猫对象,猫是一只猫

 Pet pet = new Cat();// 猫是一种宠物

多态发生的三个条件
A:类与类之间要有继承关系
B:要有方法重写
C:要有父类引用指向子类对象

// 左边是父类 父类对象 = 右边的子类对象
// 父类引用 指向了子类对象
Pet pet = new Cat();

多态情况下,成员的访问特点
A:成员变量 编译看左边,运行看左边
编译的时候,看父类,也就是左边;父类中存在成员变量也可以赋值
B:成员方法 编译看左边,运行看右边
C:静态方法 编译看左边,运行看左边
多态情况下,如何访问子类的特有方法?

// 父类引用指向子类对象
Person p1 = new Student();// 向上转型
// 父类引用指向子类对象
p1 = new Teacher();
// 父类对象 强制类型转换 为 子类对象
Teacher t1 = (Teacher) p1;// 向下类型转换

强制类型转换的时候的注意事项
向下类型转换的异常
java.lang.ClassCastException:
生活中的例子:
假如:父类形容为一个大黑猫
我们把一个香蕉 放到桶里面,不能拿出一个苹果
方法重写
重写父类方法时,访问权限,只能大于等于父类的成员方法访问权限,不能比父类的成员方法的访问权限更低
@Override 告诉jvm,我们这个方法是重写,请帮我检查这个方法的生命是否正确,不正确就报错
@Override 这个叫java中的注解,注解和注释类比的学
注释是给人解释程序的
注解是给jvm解释程序的

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP