JAVA 类的特性

本文详细介绍了Java编程中的类的三大特性——封装性、继承性和多态性,以及抽象类和接口的概念与区别。封装性强调通过公共接口保护内部数据,减少耦合;继承性允许类间复用代码,支持单重继承;多态性分为方法重载和方法覆盖,增强了代码的灵活性。此外,还讨论了抽象类和接口的使用场景,以及内部类的定义和作用。

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

目录

类的三大特性

封装性

继承性

多态性

抽象类

接口

接口和抽象类的区别

内部类


相关内容:JAVA 基本知识   JAVA 类和对象 

类的三大特性

封装性

限制在类的外部对类内部成员进行访问,只通过公共接口来访问类的成员数据。

 

类的权限有两种:默认和public

增加内部实现部分的可替换性

减小类之间的耦合关系,方便模块划分

容易保证类内部数据间的一致性,从而提高软件的可靠性

继承性

继承是复用程序代码的有力手段,当多个类之间存在相同的属性和方法时,可从这些类抽象出父类SuperClass。

Java只支持单重继承,不支持多重继承

一个接口则可以同时extends多个接口,却不能implements任何接口。 因而,Java中的接口是支持多继承的。

[<修饰符>] class <子类名> extends <超类名>{ 子类体 }

继承原则:(1)父类中private修饰的私有变量和方法,子类不能继承;(2)父类的构造方法子类不能继承

隐藏原则:子类的成员变量和超类的成员变量同名时,超类的成员变量被隐藏(不能继承)

终止继承:

(1)不能被继承的类称为最终类。 如:final class Last;

(2)用final说明的成员方法为最终方法。 如:public final void printsuper( )

多态性

  • 多态的两种表现形式:

(1) 同一类中的方法多态,称为方法重载overloading(静态多态性):同一类中允许多个同名方法,区分要点:参数的个数不同,或者是参数类型不同,或者是参数的顺序不同

(2) 子类对父类方法的重新定义,称为方法覆盖overriding (动态多态性) :方法名、返回值和参数形态完全一样。

1、子类中重写的方法和父类中被重写的方法要具有相同的名字,相同的参数表和相同的返回类型,只是函数体不同

2、子类方法不能缩小父类方法的访问权限

3、子类方法不能抛出比父类方法更多的异常

4、方法覆盖只存在于子类和父类(包括直接父类和间接父类)之间。在同一个类中方法只能被重载,不能被覆盖。

5、父类的静态方法不能被子类覆盖为非静态的方法,反之亦然;

6、子类可以定义与父类的静态方法同名的静态方法,以便在子类中隐藏父类的静态方法。

7、父类的私有方法不能被覆盖

8、父类的抽象方法可以被子类覆盖:子类实现父类的方法或重新声明父类的抽象方法。

抽象类

abstract class <类名>{
成员变量; 方法(){ 方法体 }; //定义一般方法 abstract 方法( ); //定义抽象方法 }

abstract关键字:可修饰类和方法,被修饰的类称为抽象类,被修饰的方法称为抽象方法

  • 抽象类是专门设计来让子类继承的类。
  • 抽象类提供一个类型的部分实现,可以有实例变量,构造方法,抽象方法和具体方法。一个抽象类不会有实例。
  • 抽象方法是必须被子类覆盖的方法。如果一个类不具有抽象属性,不能在该类中定义抽象方法。
  • 对于成员方法,不能同时用static和abstract说明。对于类,不能同时用final和abstract说明。

接口

[public] interface 接口名 [extends 父接口名列表 ]  {      //常量声明 常量的数据类型 常量标识符 = 常量值 ; //抽象方法声明      返回类型 方法名(参数列表) [throws 异常列表]; }    

  • 在Java中,一个类只能有一个超类。但Java提供了接口用于实现多重继承,一个类可以有一个超类和多个接口
  • 接口只包括常量定义和抽象方法。
  • 接口具有继承性,一个接口还可以继承多个父接口,父接口间用逗号分隔。
  • 系统默认,接口中所有属性的修饰都是 public static final,也就是静态常量。 系统默认,接口中所有方法的修饰都是 public abstract。
  • 当一个类实现了一个接口,它必须实现接口中所有的方法,这些方法都要被说明为public,否则会产生访问权限错误。

接口和抽象类的区别

  • 接口可以多重继承,抽象类不可以
  • 抽象类内部可以有实现的方法,接口则没有实现的方法
  • 接口与实现它的类不构成类的继承体系,即接口不是类体系的一部分。因此,不相关的类也可以实现相同的接口。而抽象类是属于一个类的继承体系,并且一般位于类体系的顶层。
  • 接口的优势:通过实现多个接口实现多重继承,能够抽象出不相关类之间的相似性。
  • 创建类体系的基类时,若不定义任何变量并无需给出任何方法的完整定义,则定义为接口;必须使用方法定义或变量时,考虑用抽象类。

内部类

[类修饰词表] class 类名 [extends 父类名] [implements 接口名列表]{ 类体 }

  1. 实名内部类
  2. 匿名内部类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值