14.最终类 抽象与接口
final关键字可用于修饰类、变量和方法,它有“不可更改”和“最终”的含义,他里面的内容不可以被继承和改写。通常是一些有固定作用、用来完成某种标准功能。
class Car extends Auto //定义最终类Car,它继承自Auto类
{
int passengers;
Car(double len,double wid,double hei,String col,String con,int spe,int pas) //构造方法
{
length=len;
width=wid;
height=hei;
color=col;
condition=con;
speed=spe;
passengers=pas;
}
public final int getPassengers()
{
return passengers;
}
}
/*
此程序片段中,定义getPassengers方法时使用了final修饰符,说明getPassengers方法是最终方法,若以Car类再次派生子类时,子类不能重写该方法。
*/
如果final修饰的是成员变量(域),则必须在声明的同时进行赋值,且赋值后即为常量不会改变。
class Car extends Auto //定义最终类Car,它继承自Auto类
{
final int passengers=5;
Car(double len,double wid,double hei,String col,String con,int spe) //构造方法
{
length=len;
width=wid;
height=hei;
color=col;
condition=con;
speed=spe;
}
public int getPassengers()
{
return passengers;
}
}
/*
此程序片段中,声明成员变量passengers时使用了final修饰符,说明passengers是最终成员变量(最终域),并赋以初值5。后面的程序中将不能修改其值。
*/
抽象abstract
他的主要作用是减少程序中的重复性,将重复的地方提炼到抽象类中方便继承,因此抽象类无法创建对象,且没有构造方法
抽象方法
定义在抽象类中,须使用关键字abstract来修饰,只有方法头,没有具体的方法体,如果抽象类派生出的子类是非抽象类,就需要在这个子类中完善抽象方法的方法体。
public abstract class a{//定义一个抽象类
int a;
int b=100;
public abstract void ff();//抽象方法
}
public b extends a{//继承抽象方法
public abstract void ff(){//完善抽象方法
……
};
}
接口 interface
接口的作用是固定类里的方法,里面也只定义方法(也可以定义常量且也没有构造方法),而接口里的方法作用由类实现。
接口与抽象类很相似但是接口比继承常用得多,因为java的类是单继承但是接口是多继承的。说白了就是更方便。
接口的声明
[]中的都是默认属性,就是可以写不写都一样
[public] interface 接口名 ([extends 父接口名列表])
{
//常量域声明
[public][static][final] 类型 常量名 = 常量值;//在接口中定义的字符默认 [public][static][final]
// 方法声明
[public][abstract]返回值类型 方法名(参数列表);//在接口中定义的方法默认 [public][abstract]
}
实现接口implemets
当你要实现接口时,必须同时实现(重写)里面的所有的方法。
多继承格式
public interface a{//定义接口a
int a=10;
int b=20;
int ff1();
void ff2();
}
public interface b{//定义接口a
String c=10;
String d=20;
int ff3();
void ff4();
}
public class a implemets a,b{//实现接口a和b
int ff1(){//完善方法1(ff1)
……
};
void ff2(){
……
};
int ff3(){
……
};
void ff4(){
……
};
}

浙公网安备 33010602011771号