抽象类、接口

为什么要用抽象类:

    子类万一没有重写正确,也没有提示。 

假设父类的代码如下

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  可以修饰成员变量(常量)、成员方法(不允许重写)、类(不允许被继承) 

  

原文地址:https://www.cnblogs.com/zhaotiancheng/p/6235150.html