2020-08-10

第十章 多态

多态前提必须有继承或者接口的实现
一个对象有多种形态叫做对象的多态性
1.什么是多态?
①同一个动作与不同的对象产生不同的行为
②多态指的是一个对象的多种形态
2.多态的体现方式
①使用继承:不同的子类重写父类方法后,体现出来的形式不一样
②接口的实现
3.形成多态的必要条件
①继承:存在子类和父类的关系
②接口实现:定义一个类实现对应的接口
③重写:子类重写了父类的方法
④重载:调用相同的方法名实现的功能时不一样
⑤子类对象的多态性(重点):父类的引用指向子类的实例
4.对象的多态性是什么?
①父类的引用指向子类的实例
②在编译期间,调用的是父类的方法,真正执行的时候,执行的是子类的方法
③编译看左边,运行看右边
5.父类对象可以调用子类独有的方法吗?不可以
在编译期间,程序会把pet对象看成是父类对象, 而父类对象没有该方法
6.程序分为两种状态,一种编译状态,一种是运行状态
Pet pet=new Dog(“小迪”, “泰迪”);
对于多态来说,编译时看左边,你这个对象是定义的是什么类型,就是什么类型,将pet对象看作是Pet类型运行时看右边真正执行的对象,也就是子类对象(Dog),执行的也是子.类重写后的方法
7.把父类转成子类,强制性转换
Dog dog1 =(Dog)pet;//向下转型
①上转型:将子类对象交给父类引用,可以自动转换
②下转型:将父类转成子类,需要强制类型转换
8.final关键字:代表最终的意思
可以修饰什么
①修饰类
②修饰方法
③修饰成员变量
④修饰局部变量
修饰类,这个类的特点:
这个类不能被继承,可以继承别的类.
修饰方法,这个方法的特点:
代表这个方法是一个最终方法,不能被重写
修饰成员变量,特点:
①成员变量的值不可改变,成员变量不会再有默认值
②如果使用final关键字,必须直接对成员变量赋值
修饰局部变量特点:
局部变量的值一旦赋值不能改变,一般用来修饰常量
9.static:静态的(重点)
static修饰成员变量(类变量)
①修饰成员变量,这个变量就不属于对象了,而属于类本身,我们就可以通过“类名.属性
②只要通过我这个类创建的对象,这些对象都可以共享这个属性
③当其中一个对象对类变量进行更改后,其他的这个类变量也会改变
VS实例变量(非static的变量,属于对象本身各个对象都各自有一套副本)
④类变量是随着类的加载而加载,类变量的生命周期大于实例变量
⑤类变量放在方法区的静态域里面
static修饰方法(类方法)
①修饰方法,这个方法就属于类本身了,可以通过“类名.方法名()”进行调用
②随着类而加载
③在静态方法里只能调用静态变量和静态方法,在普通方法里面可以调用静态方法和静态变量,因为静态方法或静态变量加载时机早于实例变量和实例方法的加载时机
④不能使用this和super关键字
static修饰代码块
代码块的作用:完成初始化
①非静态代码块:
可以给类的属性进行初始化操作,同时还可以调用类的方法(静态的,非静态的)
里面可以有输出语句
每创建完一个对象,非静态代码块就加载一次
②静态代码块
里面可以有输出语句
随着类加载而加载,只会执行一次
静态代码块的加载时机早于非静态代码块
静态代码块里面只能调动类变量和类方法
作用:jdbc 驱动 用户名 密码 数据库的连接地址
对属性赋值:
①默认初始化
②显示的初始化
③通过set方法或者构造方法
④初始化块(代码块)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值