接口&Object
一、接口
接口:
接口的概念:接口一般情况下不创建对象
1、
接口是功能的一个集合,同时也是一种引用数据类型。接口是比"抽象类",更抽象的"类"
2、
接口只描述程序所应该具备的方法,这些方法都没有具体的实现,从jdk1.8之后有改变
接口在jdk 1.8 之后可以添加静态的方法和default修饰的方法,这些方法可以有实现体
3、
个人认为:接口是一种身份的象征,
比如:
实现Runnable : 创建线程的时候使用的
实现Cloneable : 可以进行克隆
实现Comparable<引用数据类型>:可以进行比较
接口中可以定义什么:
常量: 默认使用 public static final 进行修饰
抽象方法: 默认使用 public abstract 修饰
没有实现体的方法
在jdk 1.8 之后可以添加静态的方法和default修饰的方法
接口的语法:
//定义在.java文件中
//接口也可以继承接口
public interface 接口名 extends 接口{
公有的静态常量;//public static final 数据类型 = 赋值; public static final int age = 16;
抽象方法:
public abstract 返回值类型 方法名();
普通方法,但是没有实现体
public 返回值数据类型 方法名(参数);
//jdk 1.8之后
public default void 方法名(){
}
public static void 方法名(){
}
}
访问接口中的静态常量
接口名.常量名;//常量的值不可以修改
访问接口中的静态方法
接口名.静态方法名(参数值);
可以调用static修饰的方法,不能调用default修饰的方法
如果想要调用default修饰的方法需要创建实现类的对象然后再调用
如果一个类实现多个接口,接口中有同名的default方法,实现类就必须重写,调用的是重写的
类与接口之间的关系:纵向关系 实现关系
实现类实现了接口之后,相当于声明:我具备了这个接口中的功能
类实现了接口之后,必须实现接口中所有没有实现体的方法
一个实现类,可以实现多个接口,只能继承一个父类。继承和实现可以同时存在
public class 实现类名称 extends 父类 implements 接口名1,接口名2{
}
接口特点:
接口中定义变量,默认是一个静态常量常量的值不会改变,
如果是基本数据类型,值不变
如果是引用数据类型,地址不变
方法static default方法两个特殊的内容
接口不能创建对象
实现类必须实现接口所有的方法才能创建独享
如果不想实现接口中的方法, ---- 留个坑
抽象类, 抽象方法,
类与类 单继承
类与接口 多实现
接口与接口之间 多继承
一个类继承于一个父类的同时,可以实现多个接口
为什么要定义接口
原因:
接口可以解决单继承的问题
一个类只能有一个父类
一个类可以有多个父接口
接口的出现避免了单继承的局限性,父类中定义的事务的基本功能
接口中定义事务扩展功能
好处:
接口的出现,降低了类与类设备与设备之间的耦合度(关联性)
接口的实现方便了后期的使用和维护
在接口的实现过程中
1、多个类可以实现同一个接口
2、同一个类可以实现多个接口
3、一个类继承于另外一个类的同时可以实现多个接口
4、接口不可以实现接口
5、接口不可以有构造函数
6、接口可以继承接口,并且可以多继承
7、如果子类继承于父类,并且父类实现了一个接口,将接口中的方法全部实现
子类不需要再去实现父类的接口中的方法
二、Object类
1、是所有类的父类
你自己声明一个类的时候,没有指定父类的时候,默认继承于object
public class Animal extends Object{}
2、toString():
Object类提供了一个方法 toString() 所有类都有toString方法
作用:使用字符串表示对象
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
com.j2201.objectDemo.Car@4554617c
Object object = new Object();
System.out.println(object.getClass());//class java.lang.Object
System.out.println(object.getClass().getName());//java.lang.Object
int hashCode = object.hashCode();
System.out.println(hashCode);//对象的哈希地址 1956725890
Object object1 = new Object();
System.out.println(hashCode);//1956725890
3、getClass()方法
作用:返回运行时类(对于初学的同学来说,这个方法不要纠结,后期在集合讲完之后有一个内容
反射)
4、equals(Object object)方法
作用:比较两个对象是否相等
5、 == 运算符
情况1:基本数据类型比较值是否相同
情况2:引用数据类型比较地址是否相同
6、finalize()方法
垃圾回收机制:
比如你的程序中的一个功能,长时间不实用,垃圾回收机制就会认为这个程序属于
不会再被调用的功能,就会将这个功能占用的内存空间进行回收释放
这个方法不是由程序员进行调用,jvm调用的
当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。
7、clone()方法
只有实现了Cloneable接口的类的对象才能调用这个方法
这个方法会产生一个新的对象
8、instanceof
作用:判断两个对象是否是同一个类型
使用规则:boolean 变量名 = obj instanceof 类型(和obj有继承关系的类);
obj 是否属于指定的类型
会自己判断继承关系
子类对象 instanceof 父类类型 会返回true
这个对象是属于这个类 这个对象是否属性这个类的父类
java 接口&Object
最新推荐文章于 2023-10-17 14:34:55 发布