面向对象(第三节)

本文介绍了Java中的抽象类、抽象方法、接口以及Object类的equals、finalize和toString方法。重点讲解了它们的定义、使用语法和特性,以及为何在类设计时选择接口而非抽象类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、abstract

1.1是什么

abstract是修饰符,表示抽象的,用来修饰抽象类和抽象方法

abstract修饰的类是抽象类,并且抽象类不能创建对象,抽象类一般用于继承

如果子类继承了抽象类,那么子类需要实现抽象类的所有抽象方法,否则该子类就需要使用abstract修饰

普通类继承抽象类,需要实现抽象类的所有方法

抽象类计继承抽象类,需要实现0~N个抽象方法

abstract修饰的方法是抽象方法,该方法没有方法体,可以看做没有方法体是成员方法,只定义功能,不实现功能,让不同的子类来实现功能

抽象方法,必须在抽象类中,而抽象类中可以没有抽象方法

抽象类可以看做特殊的类,类能做到,他都可以做,但不能创建对象,可以有抽象方法而已

abstract 和 final 不能同时出现

1.2使用语法
public class Abstract_01 {

}

abstract class Sup {
	abstract public void m1();
}

class Sub extends Sup {
	@Override
	public void m1() {
	}
}

abstract class Sub1 extends Sup {

}

2.Interface

2.1是什么

Interface是定义接口的关键字

Interface: 定义接口的关键字
JDK1.8之前,接口是完全抽象的,只允许出现抽象方法和常量(psf)

1.8开始,可以出现静态方法和默认方法(等同看成成员方法)

接口中,没有变量(可以有局部变量),只有常量,并且psf可以省略,接口中,权限控制默认是公共的

并且抽象方法的abstract可以省略

接口不能创建对象,没有构造方法,但是可以发生多态 父接口 变量 =new 子类();

类和接口之间,不再是继承关系(extends),而是实现关系(implements),并且是多实现,多个用逗号隔开

一个普通类实现接口,要覆写所有抽象方法

一个抽象类实现接口,需要实现~N个抽象方法(类似抽象类继承抽象类)

接口和接口是直接继承关系,并且可以多继承,多个用逗号隔开

如果接口和抽象类都能实现某个功能,优先使用接口(因为类和接口是多实现关系,如果使用接口实现功能,这样会保留继承功能,扩展性更强

3.Object

3.1 概述

Object 是java提供是根类(祖宗),所有类都直接或者间接继承了Object

java.lang.Object 在java.lang包下,这个包是核心包,用该包下的所有类,都不需要导入

3.2 Equals

equals方法的设计目的:比较俩个对象是否相等,但是默认的equals比较的是内存地址

==:比较基本类型的话,比较的是值的大小,比较引用类型的话,比较的是内存地址

如果我们不比较内存地址,而是比较属性的话,需要我们根据需求进行覆写

String ,已经覆写了equal是方法,比较的是值

3.3 Finalize

* JVM : 跨平台,多线程,面向对象,自动垃圾回收

 * 

 * 面向对象 : 封装,继承,抽象,多态

 * 

 * 垃圾 : 没有任何引用指向该对象的时候,则该对象为垃圾数据

 *         就是堆内存有个对象,但是谁也找不到它

 * 

 * 垃圾在被回收的时候,会自动调用该对象的finalize方法,是在对象生命周期要结束的时候,被调用的

 *         所以 适合做一些关闭资源等操作

 * 

 * finalize是没有回收功能的,只是要被回收之前,自动被调用而已,我们也可以手动调用finalize方法,但是仅仅是方法调用而已

3.4 toString

 * toString : 该方法代表了该对象的字符串形式的描述方式

 * 

 * 输出一个引用类型的时候,会自动调用该对象的toString方法 , 默认的toString方法是打印内存地址

 * 

 * 如果打印不要内存地址,或者需要以特定格式打印输出,则需要我们自己覆写该方法、

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值