object、多态、接口的相关知识
Object
老祖宗类,是java中所有类的父类,在java所有的类都显示或者隐式的继承自Object类
toString()
把对象的地址以字符串的形式返回
在打印一个对象的引用时,会打印对象的地址值,其实是在打印这个对象调用了toString方法的结果
OBject类中的:打印对象的地址值
public String toString(){
return getClass().getName()+"@"+Integer.toHexString(hashCode());
目的:打印对象时候,需要打印的是对象所有成员属性的值
}
目的:打印对象时候,需要打印的是对象所有成员属性的值
方法:重写toString()方法,对方法提进行重新定义
==比较对象的地址
equals()可以使用equals方法比较内容,如果使用的是Object类型中的equals方法比较的还是对象的地址
目的:想要实现比较对象的内容
解决:重写equals方法,自定义比较规则
public boolean equals(Object obj){
return(this == obj);
}
多态
一种事物的多种表现形式|形态
多态的前提:
1.类的继承
2.接口的实现
多态的最终体现:
父类引用执行子类对象
父类的引用会调用子类中重写的方法,没有重写,找父类
父类无法使用子类中独有的内容,如果想要使用,需要转型
多态使用成员的特点:
多态使用成员变量:编译运行看父类|左边|类型
多态使用成员方法:编译看类型|左边|父类,运行找对象|右边|子类
转型
向上转型–>自动类型提升:多态
向下转型–>强制类型转换:
子类类型 引用 = (子类类型)父类类型;
向下转型容易遇到的异常:ClassCastException 类型转换异常
推荐使用运算符 instanceof
运用instanceof类型判断前面的引用是否为后面类型的对象|是后面类型子类的对象,如果是返回true,不是返回false
抽象类
抽象类:
抽象方法:
1.没有方法体的方法
2.必须在抽象类中
3.被abstract修饰的方法
注意:
1.抽象类可以存在抽象方法,可以存在普通方法
2.抽象类不能被实例化
3.抽象方法必须被重写
4.抽象类的使用:
1)具体子类:重写所有的抽象方法+安需新增普通方法
2)抽象子类:按需重写+按需新增
5.抽象方法一旦被重写可以不在被重写
6.abstract与static,private,final,native不能一起使用,因为被这些关键字修饰方法不可以被重写
接口
是特殊的抽象类
接口的优点:
1.接口可以多实现,类只能单继承
2.提高代码的复用性
3.解耦
4.定义开发规范
注意:
1.抽象方法的使用必须重写
2.接口不能实例化
3.需要实现类来实现接口,使用接口中的内容
具体的实现类:必须重写所有的抽象方法+按需新增
抽象的实现类:按需重写+按需新增
4.类的继承使用extends关键字,实现使用implements关键字
5.类可以实现多个接口class Test implements Demo,A,B
6.一个类应该先继承后实现
7.只能类实现接口,继承父类,但是接口和接口之间只能多继承,不能实现
8.类和类之间只能单继承
上一篇: java实现将ftp和http的文件直接传送到hdfs
下一篇: mybatis-plus or查询