多态、final关键字、static关键字

1.什么是多态性
 * 同一个动作与不同的对象产生不同的行为
 * 多态:必须有继承(不同的子类重写父类方法后体现出来的形式不一样)或者接口的实现
 * 一个对象的多种形态叫做多态
 *
 * 2.形成多态的必要条件:
 * (1).继承:存在子类和父类的关系
 * (2).接口实现:定义一个类实现对应的接口
 * (3).重写:子类重写父类的方法
 * (4).重载:调用相同的方法名,实现的功能不一样
 * (5).子类对象的多态性(重点):父类的引用指向子类的实例
 *
 * 3.程序分为两种状态,编译状态和运行状态
 * 当存在父类的引用指向子类的实例的时候,比如demo1继承了demo,demo d = new demo1();
 * 对于多态来说,编译期间编译时看左边,定义对象的类型(demo)是什么对象就是什么类型
 * 运行时看右边,执行后也是子类重写后的方法,对象也是重写后的类型(demo1)
 *
 * 4.上转型和下转型
 * 上转型是将子类对象交给父类引用(子类转型成父类,自动转换)
 * 下转型是将父类转换成子类,强制转换
 *
 * 5.对象的多态性
 * (1).父类的引用指向子类的实例
 * (2).在编译期间,调用的是父类的方法,指向的是父类,在运行期间执行的是子类的方法(编译看左边,运行看右边)。
 *
 * instanceof:用于判断类型是否匹配
 *
 * final关键字:
 * 1.可以修饰类:这个类不能被被继承,但是可以继承其他的类
 * 2.可以修饰方法:这个方法是一个最终的方法,不能被重写
 * 3.修饰成员变量:一个成员变量加上final关键字后没有默认值了,且成员变量必须立刻赋值,赋值后不可被改变
 * 4.修饰局部变量:局部变量的值不能发生更改,在定义时不用直接赋值,
 *
 *
 * static:
 * 修饰成员变量,这个对象就不属于这个对象,而是属于类本身,我们可以“通过类名.属性名”的方式去访问
 * 只要通过这个类创建的对象,这些对象就共享这个属性
 * 当其中一个对象对类中的变量更改以后,其他对象的值也会随之更改
 * 类变量随着类的加载而加载
 * 类变量放在方法区的静态域里面,而不是放在堆里面
 * VS实例变量(非static变量,属于对象类型),各个对象都各自有一套副本
 * 在静态方法里面,只能加载静态方法或静态变量,,在普通方法里面,可以调用静态方法或静态变量,因为静态方法或者静态变量加载时机
 * 早于实际变量和实际方法的时机
 *
 * static方法还可以修饰代码块:
 * 代码块的作用:完成初始化
 * 非静态的代码块:{name = “张三”;}
 * 可以给类的属性进行初始化操作,同时还可以调用类的方法(静态的、非静态的)
 * 里面可以有输出语句
 * 随着对象的创建而加载,每创建完一个对象,就加载一次代码块
 *
 * 静态的代码块:static{}
 * 里面可以有输出语句
 * 随着类的加载而加载,只会加载一次
 * 静态的只能加载静态的,不能加载非静态的
 * 静态代码块里面只能调用类变量和类方法
 * 作用在JDBC
 *
 *
 * 对属性赋值:
 * (1).默认初始化
 * (2).显示初始化
 * (3).通过构造方法(set方法)进行初始化
 * (4).初始化块
 */

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值