JAVA之面向对象:特殊类

本文详细介绍了Java中的抽象类、接口及其使用场景,包括抽象类的特性、接口的定义与实现、Java8接口的新特性。同时,讨论了对象类Object、基本数据类型与包装类之间的转换,以及内部类的分类和使用规则。内容涵盖了Java多态性和面向对象设计的核心概念。

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

特殊类

抽象类

  1. 抽象类:用关键字abstract来修饰的类,没有具体的实例。
  2. 抽象方法:用关键字abstract修饰的方法,只有方法的声明没有方法的实现。
  3. 含抽象方法的类必须被声明为抽象类。
  4. 抽象类不能被实例化,就是用来继承的。抽象类的子类必须重写父类的抽象方法,并提供方法体。若没有重写全部的抽象方法,仍为抽象类。

接口

  1. 接口的出现是为了解决Java不支持多继承的问题。
  2. 用interface来定义,所有成员变量默认是public static final修饰,所有抽象方法默认是public abstract 修饰。
  3. 接口没有构造器器,采用多继承机制。
  4. 实现接口的类中必须提供接口中所有方法的具体实现内容,才可实例化,否则一直是抽象类。

在开发中,常常看到一个类很少去继承一个已经实现好的类,而是要么继承抽象类,要么实现接口。

  1. Java8中,接口增加了静态方法和默认方法。
  2. 若一个接口中定义了一个默认方法,而另外一个接口中也定义了一个同名同参数的方法(不管此方法是否是默认方法),在实现类同时实现了这两个接口时,会出现:接口冲突。
    解决办法:实现类必须覆盖接口中同名同参数的方法,来解决冲突。
  3. 若一个接口中定义了一个默认方法,而父类中也定义了一个同名同参数的非抽象方法,则不会出现冲突问题。因为此时遵守:类优先原则。接口中具有相同名称和参数的默认方法会被忽略。

object类

是所有Java类的根父类,extends可以省略。

包装类

基本数据类型包装类
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean
charCharacter
  1. 装箱:基本数据类型包装成包装类
    通过包装类的构造器实现 : Interger t = new Interger(i);
    通过字符串参数构造包装类对象:Float f = new Float(“4.56”);
  2. 拆箱:获得包装类对象中包装的基本数据类型变量
    调用包装类的.xxxValue()方法:boolean b = bObject.booleanValue();

基本类型、包装类与String类间的转换:

  1. 基本类型——>包装类
    - 通过构造器: Integer t = new Integer(11);
    -通过字符串参数:Float f = new Float(“32.1F”);
    - 自动装箱
  2. 包装类——>基本类型
    - 调用包装类的方法:xxxValue()
    - 自动拆箱
  3. 基本类型——>String类
    - String类中的valueOf()方法
    - 23.4+""
  4. String类——>基本类型
    -调用相应的包装类的parseXxx(String)静态方法
    -通过包装类的构造器:boolean b = new Boolean(“true”);
  5. String类——>包装类
    - 通过字符串参数:Float f = new Float(“31.2F”);
  6. 包装类——>String类
    - 包装类对象的toString()方法;
    - 调用包装类的toString(形参)方法

内部类

  1. Java中允许一个类定义位于另一个类的内部,前者是内部类,后者是外部类。内部类一般用在定义它的类或者语句块之内,在外部引用它时必须给出完整的名称。
  2. 分为成员内部类、局部内部类和匿名内部类。
  3. 成员内部类可以直接使用外部类的所有成员,包括私有数据。
  4. 局部内部类在外部类的方法中声明。
  5. 匿名内部类不能定义任何静态成员、方法和类,只能创建匿名内部类的一个实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值