zoukankan      html  css  js  c++  java
  • 非专业码农 JAVA学习笔记 4 java继承和多态

    继承和多态

    (一)继承的基本概念

    子类 extends 父类(超类)(通过继承使用父类公用的变量,方法和属性等非private定义的)

    (二)类的继承

    1.派生子类-获取父类非private定义的方法属性和相关的变量

    2.域的隐藏和继承

    (1)域的继承-继承所有非私有化的域

    (2)域的隐藏-定义跟父类相同的变量,父类的变量就会在子类隐藏,但,子类执行自己的方法还是用的是子类的变量,执行继承父类的方法才自动用上隐藏的域

    3.方法的继承和覆盖

    (1)方法的继承-继承父类非私有的方法

    (2)方法的覆盖-不同于域的隐藏,子类定义跟父类相同的方法,在子类中就会把父类的覆盖,子类不再能使用父类的同名的方法

    4.this和super

    (1)this-当前对象的引用,代指当前对象

    (2)super-指代父类的属性和方法

    (三)多态-一种程序中同名的不同方法共存的情况

    1.方法的覆盖实现多态

    2.方法的重载实现多态(后面会学到重载的知识,姑且认为是重新加载并实现不同功能)

    3.对象引用的多态:子类对象可以同时是父类的对象

    (四)方法的重载-对自身已有同名方法的重新定义(比较重要)

    (想了解清楚,详见今天转的博文吧)

    (五)构造函数的重载-同一个类,多个同名但不同参数列表的构造函数

    搞了这么多,内心问一句,这个有什么用?看一下百度一下觉得有意义了,教科书真的看不出什么…..

    方法重载的主要好处就是,不用为了对不同的参数类型或参数个数,而写多个函数。多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数。如果我们使用reflector去查看微软写的.net的基类库的话,我们可以发现他使用很多的方法重载,这样我们在调用的时候,就不需要记那么多的方法名称,而是知道了方法的功能就可以直接的给他传递不同的参数,编译器会明确的知道我们调用了哪一个方法。

    (六)包及其使用

    1.包的基本概念-个人理解为c#的命名空间(但差别还是较大的,包可以和目录有对应关系)

    2.创建:Pakage 包名{class a1{} class a2{}};,命令方式:javac –d 位置 *.java(当前目录用-d.)

    3.使用:import  包.类;可以通过CLASSPATH环境变量来指定包的存放位置

    (七)接口问题-跟C#无多大差别

    1.接口概述:类似类,定义了抽象方法和常量,形成属性集合,用于帮助实现多重继承

    2.声明接口[public] interface 接口名 [extends 父接口列表]{常量;抽象方法;}

    3.接口的实现:通过类来实现接口,class class1 extends ** implements 接口名{},其中implement是实现的声明

  • 相关阅读:
    SQL_Server_2005_数据类型转换函数(描述及实例)
    讨论:GUID与int自增列的问题
    SQL Server 2005无日志文件附加数据库
    优化SQL查询:如何写出高性能SQL语句
    开源项目之视频会议程序 Omnimeeting
    wzplayer player (android,windows,ios) 多核解码
    利用office2010 word2010生成目录
    利用office2010 word2010生成目录
    最近在忙活视频通话(sip)
    介绍几个在线画流程图的工具
  • 原文地址:https://www.cnblogs.com/mrrxu/p/4027313.html
Copyright © 2011-2022 走看看