翁凯java讲义概要第九讲

1>抽象类和抽象方法
一个类的作用仅仅是表达接口,而不是具体的实现细节
抽象方法是不完全的,它只是一个申明,没有方法体
包含一个抽象方法的类被称作抽象类
不能制造抽象类的对象
从抽象类继承的类必须override所有的抽象方法,否则它自己成为一个抽象类
可以申明一个抽象类但是里面没有一个抽象方法
//:Music4.java
//Abstract classes and methods
import java.util.*;

abstract class Instrument4{
int i;
//storage allocated for each
public abstract void play();
public String what(){
return
"Instrument4";
}
public abstract void adjust();
}
class Wind4 extends Instrument4{
public void play(){
System.out.println(
"Wind4.play()");
}
public String what(){ return
"Wind4";}
public void adjust(){}
}
2>Interface
//totally abstract class
它的地位和类是一样的,interface没有body,它的成员值在编译是确定的.
This is what alll classes that implement this particular interface will look like.
Public interface InterfaceName extends BaseInterfaces
interface中所以的方法都是public的,即使你没有申明它是public的.
interface中所以的数据成员都是public static final的,即使你没有申明.但不能是blank final


Case:Music5.java
interface Instrument5{
// Compile-time constant:
int i=5;
//static & final
//Cannot have method definitions:
void play();
//Automatically public
String what();
void adjust();
}
class Wind5 implements Instrument5{
public void play(){
System.out.println(
"Wind5.play()");
}
public String what(){ return
"Wind5";}
public void adjust(){ }
class Percussion5 implements Instrument5{
3>实现interface
An class implements an interface to have interface.
实现interface的类,其interface中所以的方法必须被
"实现",否则这个类成为一个抽象类.
所以实现interface中的方法必须被申明为public.
interface可以从多个interface得到继承,但是不能继承类.
一个类可以实现多个interface.
4>Inner class(内部类)
1.1版本之后才有内部类,1.1版本中有新的消息机制
In Java 1.1,it is possible to place a class definition within another class definition.
成员函数,成员类
5>Private inner class
Inner classes 可以完全地被封闭起来,不被外界所见到.
Why inner classes?
两个理由要在方法和scope中定义inner class:
1),我们准备实现某种形式的interface,使自己能创建和返回一个句柄.
2),要解决一个复杂的问题,并希望创建一个类,用来辅助自己的程序,同时不愿意把类的细节公开.
其实是一种设计模式
lunzi   2005-10-17 22:37:58 评论:0   阅读:1055   引用:0

发表评论>>

署名发表(评论可管理,不必输入下面的姓名)

姓名:

主题:

内容: 最少15个,最长1000个字符

验证码: (如不清楚,请刷新)

Copyright@2004-2010 powered by YuLog