`
beckshanling
  • 浏览: 262783 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

java基础

    博客分类:
  • java
阅读更多

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做修饰,参数个数,类型以及返回值的类型都必须与接口中的声明相一致。

分享到:
评论

相关推荐

    Java基础课程

    Java基础课程PPT资源;知识点:自定义动画、选择器高级应用、响应式网站开发、行业命名规范、域名注册-搭建个人网站 让学员熟练掌握css、js、JQuery等技术,可做到独立编写PC+移动端网站页面。并且能够独立开发web...

    免费开源Java 基础镜像

    Fabric8 Java 基础镜像 这是各种 Fabric8 项目中使用的 Java Docker 基础镜像的存储库。 这些镜像的 Docker 构建文件由Fish-pepper生成 ,fish-pepper 是一个用于生成 Docker 构建的复杂模板系统。fish-pepper允许...

    java基础案例教程

    java基础的案例分析和实例教学,适合新手及回顾查阅,对于夯实基础有好处

    java基础总结.xmind

    IO、面向对象Object类、API、集合体系、IO体系、面向对象、多线程、递归、相互转换、正则表达式

    Guns-java基础

    Guns v8.3.0GunsJavaSpring Boot3 + JDK17DevOpsCI/CDAPI java基础 java基础 java基础 java基础 java基础

    Java基础 学习笔记 Markdownr版

    本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,旨在帮助初学者或有经验的开发者巩固和提升Java编程技能。 1. 面向对象(OOP):Java的核心是...

    JAVA基础加强

    java基础加强版 ,更人性的巩固基础,万丈高楼平地起,只有打好基础,才能理解更复杂的东西

    java基础知识图

    总结了java基础的架构,从JDK安装到反射的知识

    NutzWk-java基础

    WK-V1V5 Java(//) java基础 java基础 java基础 java基础 java基础

    JAVA基础自学教程

    写的很详细,适合初学者,里面的讲解很丰富,很有学习价值,最好是配套一本详细的JAVA基础一起看,会有更好的效果

    Java基础学习Java基础学习

    Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础学习Java基础...

    Java 基础视频

    最全的Java视频基础。 从环境变量配置, 到基本的HelloWorld编写 到Java的基本数据类型 到Java 集合总结 到java IO 到Java 多线程编程 到java Socket 编程 从简单到复杂,从不会到会,全程教你如何玩转Java,如何从...

    java基础总结

    java基础。。。。。。。。。。。。。。。。。。。。。

    Java 基础入门(传智播客出品).pdf

    Java 基础入门,适合初学入门java的同学

    java基础-数据类型

    java\基础知识\萌新知识点\01数据类型

    java时间比较,java基础

    java java时间比较,java基础

Global site tag (gtag.js) - Google Analytics