欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

object、多态、接口的相关知识

程序员文章站 2024-03-02 12:52:34
...

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.接口的实现

多态的最终体现:

父类引用执行子类对象

父类的引用会调用子类中重写的方法,没有重写,找父类

父类无法使用子类中独有的内容,如果想要使用,需要转型

多态使用成员的特点:

多态使用成员变量:编译运行看父类|左边|类型

多态使用成员方法:编译看类型|左边|父类,运行找对象|右边|子类

转型

向上转型–>自动类型提升:多态

向下转型–>强制类型转换:

​ 子类类型 引用 = (子类类型)父类类型;

object、多态、接口的相关知识

向下转型容易遇到的异常: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.类和类之间只能单继承

相关标签: 多态 接口