java基础

本文详细解释了面向对象编程中的三大核心概念:多态性、继承和封装。通过实例介绍了多态性的运作机制,探讨了继承如何促进代码复用并简化开发流程,以及封装如何实现信息隐藏。

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

1、多态性

多态,我觉得它的作用就是用来将接口和实现分离开,改善代码的组织结构,增强代码的可读性。在某些很简单的情况下,或许我们不使用多态也能开发出满足我们需要的程序,但大多数情况,如果没有多态,就会觉得代码极其难以维护。多态,就是重载和重写.重载发生在一个类中.重写发生在子类,意思就是子类重写父类相同名称的方法重载的特性,方法名相同.返回类型,传入方法的参数不同(包括个数和类型). 重写的特性,方法名相同,返回类型,参数均相同,必须发生在子类.

一、先用自己的语言概括一下“多态性”吧:

多态性是指在继承层次或者接口与实现类层次上,如果子类覆盖了父类的方法,或者说实现类实现了接口

定义的方法,那么可以通过一般化的用父类或者接口来调用该方法,JVM在运行期能够根据实际传递的子

类对象引用,来调用相应的方法,产生正确的行为。达到“同一函数,不同行为”的效果。java的多态性

是通过动态绑定实现的。

例如,类A中有一aa()方法,类B和类C继承类A,并覆盖了类A的aa()方法,这时在程序中,如果用类A的引

用a调用aa方法:a.aa(),JVM会根据动态绑定机制,根据a的实际类型调用相应方法;如果a=new B(),那

么调的是B的方法;如果a=new C(),那么调的是C的方法。

上述概念包含几个关键点:
首先是多态性的前提:
1.在继承层次或者接口与实现类层次上才有多态性;
2.子类覆盖了父类的方法,或者实现类实现了接口定义的方法,才有多态性;

其次是多态性的表现:可以通过一般化的用父类或者接口来调用某一方法,JVM在运行期能够根据实际传递的子类对象引用,来调用相应的方法,从而产生正确的行为。

2、继承(inheritance)
    继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。比如可以先定义一个类叫车,车有以下属性:车体大小,颜色,方向盘,论坛,而又由车这个类派生出教程和卡车两个类,为轿车添加一个小后备箱,而为卡车添加一个大货箱。
类的继承知识点
(1)java不支持多重继承,也就是说子类至多只能有一个父类
(2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法
(3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承
(4)子类中定义的成员方法,并且这个成员方法的名字,返回类型,及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承。


3、封装(encapsulation)
    类使得数据和对数据的操作集成在一起,从而对使用该类的其他人来说,可以不管它的实现方法,而只管用它的功能,从而实现所谓的信息隐藏。


4、单继承与多继承
    JAVA不支持多重继承,单继承使JAVA的继承关系很简单,一个类只能有一个父类,易于管理程序,同时一个类可以实现多个接口,从而克服单继承的缺点。接口的定义和类的定义很相似,只是关键字不同,关键字为interface。生命格式如下:
interface 接口名
{
}
    上面的大括号中为接口体。接口体中包含成员变量定义和方法定义两部分。
    接口体中只进行方法的声明,不允许提供方法的实现。所以在格式上只存在方法声明,实际上没有方法体,而方法体要在实现的类中再去具体定义。
    还有一点需要说明的是:如果一个类使用了某个接口,就必须要实现这个接口的所有方法,即使实在没有内容只是一个空的方法体也不许要写。而且每个方法都默认是public的,所以实现时代码一定要用public做修饰,参数个数,类型以及返回值的类型都必须与接口中的声明相一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值