2022.01.07向下转型和包装类
1.如何实现向下转型?需要注意什么问题?如何解决此问题?
①什么是向下转型:向下转型是多态的逆过程
Person p1 = new Man();//向上转型
Man m1 =(Man)p1;//向下转型
m1就可以调用除与父类对象共有的其他方法
②首先要注意向下转型的类和该类是子父类的关系;还要注意子类引用不能指向父类的对象;
避免出现ClassCastException
③ 首先使用instanceof判断能不能向下转型(p1 instanceof Man)
Person p = new Man();
使用强转符:()
Man m = (Man)p;
可能ClassCastException异常。
使用instanceof在进行向下转型前判断。
if(p instanceof Man){
Man m = (Man)p;
}
2.== 和 equals()的区别?
== 运算符,equals()是方法
object类中的equals()方法是 ==
重写的equals()方法比较的是实际存储的内容
3.重写一个equals方法
Class User { String name; int age; //重写其equals()方法 public boolean equals(Object obj){ if(this == obj){ return ture; } if(obj instanceof User){ User u = (User)obj; return this.age == u.age && this.name.equals(u.name); } return false; } }
4.写出8种基本数据类型及其对应的包装类
基本数据类型 | 包装类 |
int | Integer |
char | Character |
long | Long |
double | Double |
float | Float |
boolean | Boolean |
byte | Byte |
5.基本数据类型、包装类与String三者之间如何转换