2020-8-10

Posted cvems700

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2020-8-10相关的知识,希望对你有一定的参考价值。

多态:
子类的多态性:父类的引用指向子类的实例
Pet pet = new Dog(“小迪”,”泰迪”);(向上转型)
创建一个宠物类对象pet但实例化是用的是pet下的子类来调用
这样做的原因是这样做更安全

程序分为两种状态:编译状态和运行状态
对于多态来说:编译时看左边,对象定义什么类型就是什么类型,将Pet对象看作宠物类型
运行时看右边:真正执行的对象,实例化后的对象类型,执行的时子类重写后的方法(dog)

当创建Pet pet = new Dog(“小迪”,”泰迪”);时:
子类dog并不能调用子类dog的方法,因为编译时创建的对象为父类类型,所以编译时会报错sleep是dog独有的方法
//dog.sleep();编译时会报错程序不能运行

要想调用的话需要先把父类转换成子类(强制类型转换,在类中叫向下转型)
Dog dog1 =(Dog)pet;

向下转型和向上转型
向上转型:将子类对象交给父类引用,可以自动转换(小范围->大范围)
下转型:把父类转换为子类(强制类型转换)

6.对象的多态性:(1)父类的引用指向子类的实例
(2)编译期间调用的是父类的方法,真正执行时执行的是子类的方法
(3)编译看左边,运行看右边(前提是有继承)

7。子类之间不能进行强制类型转换,可以用运算符进行判断运行时是否匹配
Instanceof运算符:用来检查 一般放在强制转换之前
用法: 对象名 instancef 类名 如果正确则返回ture
一般与if搭配使用

Final关键字可以修饰
①类②方法③成员变量④局部变量
(1)修饰类:
特点:类不能被继承
(2)修饰方法:
特点:方法不能被重写
(3)修饰成员变量
特点:成员变量在被final修饰时,必须直接对成员变量直接赋值
(4)修饰局部变量
特点:局部变量的值不能更改,一般用于修饰常量

Static修饰变量或者方法时则该对象,方法属于类本身而不属于对象
及对一个对象的属性赋值则所有对象的值都会改变,在堆中开辟一块单独的空间来存放该属性,所有的对象共享该属性。
(1)修饰成员变量:变量就不属于对象而属于类本身
(2)只要通过某个对象改变了静态变量的值,则所有对象会共享这个值
(3)变量放在方法去的静态域里面
(4)方法随着类的加载而加载

生命周期:比实例对象长

以上是关于2020-8-10的主要内容,如果未能解决你的问题,请参考以下文章

2020-8-10

为啥更改实体的属性时会删除我的 CoreData 信息?

为啥在递增 int 时会得到随机结果 [关闭]

当一个线程 execve() 一个文件时会发生啥?

将 LED 切换到 TORCH 模式时会出现啥错误?

为啥与多个 Popen 子进程一起使用时会出现通信死锁?