Java学习(五)面向对象的高级特性
2013-07-13 21:45
351 查看
一:继承
关键字:extends,super(指向父类的引用),this(指向本类的引用)。
规则:Java支持单继承(子类只能有一个父类,但一个父类可以有很多子类),子类可以继承父类的所有属性和方法。
子类实例化过程:先实例化父类,然后实例化子类(先调用父类的构造器,然后调用子类的构造器)
优点:代码复用,已维护,高效。
二:多态:
同一个实现接口,使用不同的实例而执行不同的操作。
必要条件:继承或实现,方法覆盖,父类引用指向子类对象。
优点:简化代码,改善代码的组织性和可读性,便于扩展。
三:方法的覆盖:
规则:相同的方法名,相同的参数(数量,类型,顺序),相同的返回类型,子类覆盖方法的访问权限不小于父类的的访问权限。
四:抽象类:
抽象方法:只有方法声明,没有方法实现的方法。
规则:抽象类不能实例化,抽象方法必须在其子类中被实现,否则子类只能声明为abstract。抽象方法不能为static
五:接口:只包含常量和抽象方法,没有变量和方法的实现。
关键字:interface
规则:无构造器,不能实例化。
接口与类的关系:类可以实现多个接口,类若实现一个接口,就必须实现接口所有的抽象方法,否则只能声明为抽象类。
接口与抽象类的区别:接口不能有非抽象方法,抽象类可以;类可以实现多个接口,但只能有一个父类;接口不是类分级的一部分。
意义:相当于实现多继承,使方法的定义和实现想分离,降低模块或系统间的耦合性。
六:内部类:定义在一个类内部的类
规则:内部类可以访问外部类的所有属性和方法;无需外部类对象,内部类可以直接访问外部类的变量和方法,但是外部类访问内部类的变量和方法时需要内部类对象;不能定义static变量;内部类和外部类有相同的变量和方法时,采取就近原则,访问内部类。
访问规则:外部类内部访问内部类 Inner In =new Inner(); 在外部类外访问内部类 Outer o=new Outer(); Outer.Inner oi=o.new Inner();
静态内部类:可以定义静态成员和非静态成员,不能访问外部类的非静态成员。实例化方式:Outer.Inner inn=new Outer.Inner();
局部内部类:方法中或者程序块内定义的内部类。(只能访问方法中的final类型的局部变量)
匿名内部类:没有名称,不能被引用的内部类。没有构造方法,不能定义静态成员,方法和类,只有一个实例,
七:封装:
定义:隐藏属性,方法或实现细节的过程
目的:隐藏实现细节,限制对属性的不合理操作,增强代码的可维护性。
关键字:extends,super(指向父类的引用),this(指向本类的引用)。
规则:Java支持单继承(子类只能有一个父类,但一个父类可以有很多子类),子类可以继承父类的所有属性和方法。
子类实例化过程:先实例化父类,然后实例化子类(先调用父类的构造器,然后调用子类的构造器)
优点:代码复用,已维护,高效。
二:多态:
同一个实现接口,使用不同的实例而执行不同的操作。
必要条件:继承或实现,方法覆盖,父类引用指向子类对象。
优点:简化代码,改善代码的组织性和可读性,便于扩展。
三:方法的覆盖:
规则:相同的方法名,相同的参数(数量,类型,顺序),相同的返回类型,子类覆盖方法的访问权限不小于父类的的访问权限。
四:抽象类:
抽象方法:只有方法声明,没有方法实现的方法。
规则:抽象类不能实例化,抽象方法必须在其子类中被实现,否则子类只能声明为abstract。抽象方法不能为static
五:接口:只包含常量和抽象方法,没有变量和方法的实现。
关键字:interface
规则:无构造器,不能实例化。
接口与类的关系:类可以实现多个接口,类若实现一个接口,就必须实现接口所有的抽象方法,否则只能声明为抽象类。
接口与抽象类的区别:接口不能有非抽象方法,抽象类可以;类可以实现多个接口,但只能有一个父类;接口不是类分级的一部分。
意义:相当于实现多继承,使方法的定义和实现想分离,降低模块或系统间的耦合性。
六:内部类:定义在一个类内部的类
规则:内部类可以访问外部类的所有属性和方法;无需外部类对象,内部类可以直接访问外部类的变量和方法,但是外部类访问内部类的变量和方法时需要内部类对象;不能定义static变量;内部类和外部类有相同的变量和方法时,采取就近原则,访问内部类。
访问规则:外部类内部访问内部类 Inner In =new Inner(); 在外部类外访问内部类 Outer o=new Outer(); Outer.Inner oi=o.new Inner();
静态内部类:可以定义静态成员和非静态成员,不能访问外部类的非静态成员。实例化方式:Outer.Inner inn=new Outer.Inner();
局部内部类:方法中或者程序块内定义的内部类。(只能访问方法中的final类型的局部变量)
匿名内部类:没有名称,不能被引用的内部类。没有构造方法,不能定义静态成员,方法和类,只有一个实例,
七:封装:
定义:隐藏属性,方法或实现细节的过程
目的:隐藏实现细节,限制对属性的不合理操作,增强代码的可维护性。
相关文章推荐
- Spring学习笔记-IOC高级特性3-用Java Config简化XML配置
- python学习笔记3:面向对象的高级特性3 定制类
- Java高级特性之枚举学习总结
- Java高级特性之反射学习总结
- 【学习总结】java高级特性之四种JAVA内部类总结
- Java高级特性之泛型学习总结
- Java高级特性之枚举学习总结
- Java学习备忘录(五)高级语言特性篇(原创)
- 【学习总结】java高级特性之String、StringBuffer、StringBuilder
- Java高级特性之枚举学习总结
- 【java学习】面向对象三大特性:封装,继承,多态
- JAVA核心技术学习笔记(第七版,Ⅱ高级特性)
- Java高级特性之枚举学习总结
- Java学习笔记二十五:Java面向对象的三大特性之多态
- Java学习笔记————面向对象(高级)
- 黑马程序员——JAVA学习笔记——面向对象(三大特性)
- Java高级特性之泛型学习总结
- Java学习笔记十八:Java面向对象的三大特性之封装
- java高级特性学习笔记
- Java高级特性之反射学习总结