继承是面向对象编程技术的基石,因为它允许创建分等级层次的类.运用继承,你能够创建一个通用类,它定义了一系列相关项目的一般特性.该类可被更具体的类继承,每个具体的类都增加了一些自己特有的东西.
被继承的类叫做超类(superclass),继承超类的类叫子类(subclass).
尽管子类包括超类的所有成员,它不能访问超类中被声明成private的成员.
super的使用:
/******************************************************/
class Box{
double height;
double width;
double depth;
Box(double w,double h,double d){
width = w;
height = h;
depth = d;
}
}
class BoxWeight extends box{
double weight ;
BoxWeight(double w,double h,double d,double m){
super(w,h,d);
weight = m;
}
}
/******************************************************/
object类
Object clone() 创建一个和被复制对象完全一样的新对象.
boolean equals(Object object) 判断对象是否相等
Class getClass() 获取运行时一个对象的类 final
void notify() 恢复一个等待调用对象线程的执行 final
void notifyAll() 恢复所有等待调用对象线程的执行 final
void wait() 等待另一个线程的执行 final
接口(interface):
用interface,可以从类的实现中抽象一个类的接口。用interface。可以指定一个类必须做什么,而不是规定其怎样去做。
接口在语句构成上与类相似,但是他缺少实例变量,而且其方法不含方法体。
一个类可以实现多个接口。
/********************接口的定义*********************/
public interface name{
return-type method-name1(parameter-list);
return-type method-name2(parameter-list);
type final-varname1 = value;
type final-varname2 = value;
//....
return-type method-nameN(parameter-list);
type final-varnameN =value;
}
/*********************实现接口***********************/
public class classname[extends superclass][implements interface[,interface...]]{
//class-body
}
当实现一个接口方法时,它必须声明成public.
如果一个类包含一个接口但是不完全实现接口定义的方法,那么该类必须定义成abstract型.
定义了一种给定结构的抽象但是不提供任何完整的方法实现。既是创建一个只定义一个被它的所有子类共享的通用形式,由每个子类自己去填写细节。这样的类决定了子类所必须实现的方法的本性。
抽象方法(abstract method)。
任何含有一个或多个抽象方法的类都必须声明成抽象类。声明一个抽象类只需要在类声明开始前在关键字class前使用abstract关键字,抽象类没有对象。
不能定义抽象构造函数或抽象静态方法。所有抽象类的子类都必须执行超类中的所有抽象方法或者是它自己也声明成abstract。
因为java的运行时多态是通过使用超类引用实现的,所以尽管抽象类不能用来实例化,他们可以用来创建对象引用。这样,创建一个抽象类的引用是可行的,这样它可以用来指向一个子类对象。
exp:
abstract class box{...}
class boxwidth extends box{...}
public void static main(String args[]){
box b = new box();//错误
boxwidth bw = new boxwidth();
box b ;
b = boxwidth ;
}