您的位置:首页 > 编程语言 > Java开发

Java基础概念

2016-07-24 22:46 197 查看

重写

Override(@后 “Alt+/”)。方法又称方法覆盖,父类与子类之间的多态性,对父类的函数进行重新定义,子类中定义某方法与其父类有相同的名称和参数。重写方法只能存在于具有继承关系中,重写方法只能重写父类非私有的方法。

重载

overload。在一个类中。方法名相同,有不同的参数列表(静态多态性)返回值类型可以相同也可以不相同。

关于重写与重载的区别,可参考:http://www.cnblogs.com/bluestorm/archive/2012/03/01/2376236.html

接口

由常量定义和方法定义组成,方法只有定义没有实现。接口名与接口文件的文件名一样,可以继承父接口

接口里面的成员变量默认都是public static final类型的。必须被显示的初始化

接口里面的方法默认都是public abstract类型的。隐式声明。

接口没有构造方法,不能被实例化

类如果实现了一个接口,那么必须实现接口里面的所有抽象方法,否则类要被定义为抽象类。

接口不能实现另一个接口,但可以继承多个接口。

在类的继承中,只能单重继承,而实现接口时,一次可以实现多个接口,每个接口间使用逗号分隔。

抽象类

将一个类声明为abstract,此类不能生成对象,只能被继承使用。

抽象类体现了数据抽象的思想,是实现多态的一种机制。它定义了一组抽象的方法,至于这组抽象方法的具体表现形式有派生类来实现。

只要包含一个抽象方法的类,该方法必须要定义成抽象类,不管是否还包含有其他方法(抽象方法必须存在于抽象类中)。

抽象类中可以包含具体的方法,当然也可以不包含抽象方法。

子类中的抽象方法不能与父类的抽象方法同名。

abstract不能与final并列修饰同一个类;abstract 不能与private、static、final或native并列修饰同一个方法。

子类继承抽象类必须实现其中抽象方法,除非子类也为抽象类。

接口与抽象类区别

抽象类是对类抽象,而接口是对行为的抽象

接口只能包含抽象方法,抽象类可以包含普通方法。

接口只能定义静态常量属性,抽象类既可以定义普通属性,也可以定义静态常量属性。

接口不包含构造方法,抽象类里可以包含构造方法(但抽象类也不能被实例化,只是作为子类扩充用)。

继承、多态、封装

三大特性

http://blog.csdn.net/chenssy/article/details/12785831

1.封装

信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。

用户是无需知道对象内部的细节(当然也无从知道),但可以通过该对象对外的提供的接口来访问该对象。个对象它所封装的是自己的属性和方法,所以它是不需要依赖其他对象就可以完成自己的操作

优点:1、良好的封装能够减少耦合。 2、类内部的结构可以自由修改。3、可以对成员进行更精确的控制。4、隐藏信息,实现细节。

2.继承

关键字:代码复用

继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。通过使用继承我们能够非常方便地复用以前的代码,能够大大的提高开发的效率。

继承所描述的是“is-a”的关系。实际上继承者是被继承者的特殊化,它除了拥有被继承者的特性外,还拥有自己独有得特性。

特点:1.子类拥有父类非private的属性和方法。2.子类可以拥有自己属性和方法,即子类可以对父类进行扩展。3.子类可以用自己的方式实现父类的方法。

注意事项:1.构造器只能够被调用,不能被继承。 可使用super()调用父类的构造方法(如果父类没有默认构造器)。2.protected关键字对于任何继承与此类的子类而言或者其他任何位于同一个包的类而言,是可以访问的。

缺点:1.继承是一种强耦合关系。2.父类变,子类就必须变。3.继承破坏了封装,对于父类而言,它的实现细节对与子类来说都是透明的。

3.多态

多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。

多态分为编译时多态(静态)运行时多态(动态)*。其中编辑时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的函数,通过编辑之后会变成两个不同的函数,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是我们所说的多态性。(相同的消息使得不同的类做出不同的响应。)

实现条件:继承、重写、向上转型。多态中必须存在有继承关系的子类和父类。子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。

实现形式继承和接口

1.基于继承实现的多态:父类和继承该父类的一个或多个子类对某些方法的重写,多个子类对同一方法的重写可以表现出不同的行为。

2.基于接口实现的多态:继承是通过重写父类的同一方法的几个不同子类来体现的,那么就可就是通过实现接口并覆盖接口中同一方法的几不同的类体现的。在接口的多态中,指向接口的引用必须是指定这实现了该接口的一个类的实例程序,在运行时,根据对象引用的实际类型来执行对应的方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java