标签:使用 java strong sp 数据 on 问题 ef bs
继承和多态
(一)继承的基本概念
子类 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是实现的声明
标签:使用 java strong sp 数据 on 问题 ef bs
原文地址:http://www.cnblogs.com/mrrxu/p/4027313.html