JavaSE之抽象、接口、object(面向对象)

一、抽象

1.1 概述

抽象: 往往用来表示设计中得出的抽象概念,一般不会有具体的实体表示
比如动物,他只是一个抽象的概念,并没有一个具体的东西叫动物
所以动物就不能代表一个具体的实体,就意味着,动物类,是不能创建对象的
所以 此时动物类,应该定义为抽象类
abstract:修饰符,表示抽象的

  • abstract修饰类为抽象类,并且抽象类不能创建对象,但是依然有构造方法,用于子类创建对象时调用(super())
  • abstract修饰的方法为抽象方法,抽象方法没有 方法体,用于被子类实现
  • 抽象方法,必须在抽象类中,而抽象类中不一定有抽象方法

1.2 怎么用

image-20240801183040112

1.3 注意

final 和 abstract 不能同时修饰

因为final表示最终,不可修改,修饰的类不能被继承,修饰的成员方法不能被覆写

而abstract表示抽象的,抽象类和抽象方法,就是用于被继承.被子类实现覆写的

image-20240801183338288

二、接口

2.1 是什么

image-20240801183454534

面向接口编程

接口是解决Java中单继承导致功能变弱问题

一个类只能继承一个类,但是可以实现很多接口

使用接口,也是可以发生多态的

接口可以看做特殊的抽象类,完全抽象

接口中没有变量,只有常量public static final ,并且psf可以省略

1.8之前,接口中没有其他方法,只有抽象方法和常量

1.8开始,新特性接口中可以出现default方法和静态方法

由定义类关键字class改为interface

2.2 优点

就是多态的优点,降低耦合度

2.3 怎么用

1 类和类 单继承 extends

2 类和接口 多实现 implements,多个逗号隔开

3 接口和接口之间 多继承 , 多个逗号隔开

继承和实现 可以同时存在,先继承,后实现

一个类实现接口后,需要实现所有的抽象方法

一个抽象类实现接口后,需要实现所有的抽象方法

一个抽象类实现接口后,可以实现0~N个抽象方法

接口不能创建对象,并且没有构造方法

image-20240801184744320

image-20240801184805801

image-20240801184822758

image-20240801184836100

2.4 接口和对象的区别

如果某个功能通过抽象类和接口都能完成,优先使用接口

因为类和类是单继承,而类和接口是多实现

我们使用接口的话,会保留类继承,扩展性更强

三、object

Object是java提供的根类,所有类都直接或间接继承Object

Object中的方法是所有类都有的

Object b = new xxx() 可以发生多态

3.1 toString

toString方法,返回这个对象的字符串表示形式

当输出一个引用类型的时候,会自动调用该对象的toString方法

默认的toString方法是:包名.类名@十六进制

image-20240801185729042

image-20240801185741650

image-20240801185756052

image-20240801185808585

image-20240801185817612

3.2 Equals

设计目的:用于比较两个对象是否相同,默认比较内存地址

== : 比较基本类型的时候,比较的是值的大小,而比较引用类型的时候,只能比较内存地址是否相同

image-20240801190134391

image-20240801190216504

3.3 finalize

垃圾:就是没有引用指向它的时候,该对象会被视为垃圾数据

finalize方法,是当垃圾被回收之前,jvm会自动调用该对象的finalize方法

由于finalize方法是回收的时候执行,并且只执行一次,所以适合做关闭资源等收尾操作

finalize方法是jvm自动调用,该方法并没有回收垃圾的功能,如果我们手动调用,也只是单纯的调用方法而已

前,jvm会自动调用该对象的finalize方法

由于finalize方法是回收的时候执行,并且只执行一次,所以适合做关闭资源等收尾操作

finalize方法是jvm自动调用,该方法并没有回收垃圾的功能,如果我们手动调用,也只是单纯的调用方法而已

image-20240801190639597

  • 13
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值