为什么要用抽象类:
子类万一没有重写正确,也没有提示。
假设父类的代码如下
public class USB { public void QiDong(){ } public void TingZhi(){ } }
子类中的代码如下:对父类中的方法的重写
public class UPan extends USB { public void Qidong(){ //这里的Qidong 并不是对父类函数的重写 System.out.println("u盘启动了"); } public void TingZhi(){ System.out.println("u盘停止运行了"); } }
这样的代码,在Eclipse中是不会报错的;
抽象类:不知道是具体什么东西的类。
写法:abstract class 类名
public abstract class USB { }
抽象方法:不知道是具体是做什么的方法;
写法:abstract 返回类型 函数名(形参); 抽象方法不需要写函数体
派生类中,可以不实现某些抽象方法,但派生类必须要声明为抽象类。
抽象类中,可以有抽象方法,也可以有非抽象方法。抽象类中还可以有成员变量。
public abstract class USB { public String JiaGe; public abstract void QiDong(); public abstract void TingZhi(); }
接口:
接口的作用:主要是起一个约束的作用 可以理解成为构架一个大框 代码格式只能按照规定的格式写
定义: 文件—新建—接口 // 接口名首字母加一个大写的I
接口定义时,接口名字尽量是形容词,或者描述性的词
接口的内容尽量的少,方便灵活使用 —接口分离原则
interface 接口名 extends 父接口列表{ final 类型 常量名=值; //规定了需要按照什么格式去写,如果和这个格式不统一,就会报错 public void 方法名(形参); }
接口的实现:
abstract class 类名 extends 父类 implements 接口列表{}
前面说道接口的作用就是约束,那么具体来看一下是怎么约束的
创建一个接口 新建—接口 在接口中录入以下代码
public interface IJiSuan { public int a=0; public void Suan(int a, int b); }
然后我们新建一个类 新建-类 添加接口,点击确定,就会自动生成以下代码;
public abstract class YunSuan implements IJiSuan { @Override public void Suan(int a, int b) { // TODO 自动生成的方法存根 } }
假设我们将方法名改成 suan 系统就会自动报错
final 可以修饰成员变量(常量)、成员方法(不允许重写)、类(不允许被继承)
时间: 2024-10-16 06:43:09