14.最终类 抽象与接口

最终类final

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(){
        ……
    };
}

 

implemets xxxxxx,xxxxxx

posted @ 2021-12-02 16:45  始墨......至隐  阅读(74)  评论(0)    收藏  举报