linux中mysql与eclipse_LInux环境下Eclipse + Tomcat + MySQL 配置J2EE开发环境的方法

本文详细介绍了Java中的抽象类、接口、内部类等高级特性,包括抽象类与抽象方法的概念及使用方式,接口的定义与实现,以及内部类的创建与实例化方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇博文里总结了面向对象三大特性在Java中的体现,现在谈一谈Java中的抽象类,接口,内部类等特性。

一. 抽象类

public abstract class Shape {

public int shapeID = 0;

public abstract double getArea();

}

Java中允许类、接口或成员方法具有抽象属性,而不允许成员域或构造方法具有抽象属性。

类修饰词中含有abstract的类具有抽象属性,称为抽象类;接口总是具有抽象属性。

如果成员方法的修饰词中含有abstract,则该成员方法具有抽象属性,称为抽象方法。抽象方法只能在抽象类或接口中定义。而抽象类中一般有至少一个抽象方法,所以总体上来讲,含有抽象方法的类叫做抽象类。

抽象方法不含方法体,格式如下:

[方法修饰词列表] 返回类型 方法名(参数列表);

抽象类可以具有构造方法,但不能直接生成实例,必须通过非抽象子类生成实例。

如果抽象类的子类不是抽象类,则要求在子类的定义中必须覆盖父类(抽象类)的所有抽象方法。

二. 接口

Java不允许一个子类拥有多个直接父类,但允许一个类实现多个接口。接口定义的格式为:

[接口修饰词列表] interface 接口名 [extends 接口名列表] { 接口体 }

public interface Shape {

public static final double PI = 3.14159;

public abstract double getArea();

}

外部接口和外部类一样,一般都不具有protected和private属性

接口本身具有抽象属性,所以abstract修饰词是不必要的。

接口体内部不含构造方法,不能直接通过接口生成实例对象

接口的所有成员域都具有public、static和final属性;接口的所有成员方法都具有public和abstract属性

若实现接口的类不是抽象类,则需要在该类的类体中定义覆盖该接口中的所有成员方法。

三. 内部类

实名内部类

实名内部类的封装性修饰词增加了protected和private。可以根据情况选择。

对于不具有静态属性的实名内部类,如果它的成员域具有静态属性,则必须同时具有final属性;不具有静态属性的实名内部类不能含有具有静态属性的方法。

实名内部类实例对象的创建方法

* 静态实名内部类的实例对象:

new 外部类名.实名内部类名(参数列表)

*不具有静态属性的实名内部类的实例对象:

外部类表达式.new 实名内部类名(参数列表)

匿名内部类

匿名内部类不具有类名,不能具有抽象和静态属性,并且不能派生出子类。匿名内部类的定义格式是:

new 父类型名(参数列表) { 类体 }

举个例子比较容易理解:

abstract class ClassA {

int data;

public ClassA (int i) { data = i; }

public abstract void method();

}

public class ClassB {

public static void main(String[] args) {

ClassA a = new ClassA(3) {

public void method() {

System.out.println(data);

}

};

a.method();

}

}

四. final 修饰词

具有final属性的的类不能派生子类

如果成员域具有final属性,则在赋值后不能被改变。如果成员域同时具有final和static属性,则其只能在定义时赋值;如果成员域只具有final属性,不具有static属性,则只能在定义时或构造方法中赋值。

如果一个类的成员方法具有final属性,则其不能被当前类的子类的成员方法覆盖。

五. static 修饰词

除内部类外,类一般不具有static属性。static的内部类的原因和特性还需要进一步学习。

六. Misc

abstract, static, final是三个常用修饰词。这三个修饰词中只有static和final两个修饰词可以组合在一起。

原文:http://blog.youkuaiyun.com/kleguan/article/details/26169261

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值