抽象、接口、内部类

来源:互联网 发布:php 读取股票数据文件 编辑:程序博客网 时间:2024/06/03 10:44
普通方法:
修饰符返回值类型 方法名(参数列表){

抽象方法:
修饰符 abstract 返回值类型 方法名(参数列表);


规则:
包含抽象方法的类叫做抽象类
抽象类必须得用abstract修饰

包含普通方法的类必须得声明为抽象的

抽象类中可以有普通方法
抽象类中的可以没有抽象方法

抽象类中可以全部是抽象方法

作用:
抽象类不能【直接】用来定义对象,一般是用来作为父类出现
抽象类中的抽象方法一般用来定义规则



接口 interface
抽象类抽象到极致【只包含常量、抽象方法】
接口中的所有方法都是public abstract的
接口中的所有常量都是public final static的
接口没有构造方法
接口是用来定义规则的,没有默认实现


内部类的共性编辑
(1)、内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的

.class文件,但是前面冠以外部类的类名和$符号 。
(2)、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此

内部类可以自由地访问外部类的成员变量,无论是否是private的 


静态内部类:(最简单的内部类形式。
  类定义时加上static关键字。
  不能和外部类有相同的名字。
  被编译成一个完全独立的.class文件,名称为OuterClass$InnerClass.class的形式。
  只可以访问外部类的静态成员和静态方法,包括了私有的静态成员和方法。)
静态内部类也是定义在另一个类里面的类,只不过在类的前面多了一个关键字static。静态内部类是不需要依赖于外部类的,这点和类的静


态成员属性有点类似,并且它不能使用外部类的非static成员变量或者方法,这点很好理解,因为在没有外部类的对象的情况下,可以创建


静态内部类的对象,如果允许访问外部类的非static成员就会产生矛盾,因为外部类的非static成员必须依附于具体的对象。


匿名内部类:
匿名内部类就是没有名字的局部内部类,不使用关键字class, extends, implements, 没有构造方法。


局部内部类:
局部内部类是定义在一个方法或者一个作用域里面的类,它和成员内部类的区别在于局部内部类的访问仅限于方法内或者该作用域内。

0 0
原创粉丝点击