加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

一篇文章带 你掌握Java中的抽象类和接口知识

发布时间:2022-12-03 12:52:54 所属栏目:语言 来源:
导读:  凡是使用abstract关键字修饰的类就是抽象类。

  2.假设在定义Animal类,定义一个shout()方法表示动物发出的叫声,我们知道不同动物它们的发出的声音是不一样的,在shout()方法不能够准确的描述动物发出的叫
  凡是使用abstract关键字修饰的类就是抽象类。
 
  2.假设在定义Animal类,定义一个shout()方法表示动物发出的叫声,我们知道不同动物它们的发出的声音是不一样的,在shout()方法不能够准确的描述动物发出的叫声。当在定义一个类,通常会定义一些方法来描述这个类的行为特征,有些时候这些方法实现的方式我们不能确定。定义抽象方法使用abstract关键字修饰例如以下所示:
 
  abstract void shout();//定义抽象方法
 
  定义抽象类使用abstract关键字修饰例如以下所示:
 
  //定义抽象类的Animal
 
  abstract class Animal{
 
  abstract void shout()//定义抽象方法
 
  }
 
  3.抽象类特点:
 
  ① 有抽象方法的类只能被定义成抽象类,但抽象类可以没有抽象方法。
 
  ②抽象类是没有具体对象的概念类,也就是说抽象类不能实例化为对象。
 
  ③如果一个类中含有未实现的抽象方法,那么该类就要使用abstract声明为抽象类。
 
  ④抽象方法不可以有方法体。
 
  4.如何实现抽象类的方法例子
 
  //定义Fruit类
 
  abstract class Fruit{
 
      //定义抽象方法info()
 
      abstract void info();
 
  }
 
  //定义Cherry继承Fruit类
 
  class Cherry extends Fruit{
 
      //实现抽象方法info()
 
      void info(){
 
          System.out.print("我是一个樱桃,重量为66g!");
 
    }
 
  }
 
  public class p25 {
 
      public static void main(String[] args) {
 
          // TODO Auto-generated method stub
 
          Cherry c=new Cherry();//实例化Cherry对象
 
          c.info();//调用info()方法
 
    }
 
  }
 
  结果是:
 
  我是一个樱桃,重量为66g!
 
  从上面代码中,首先定义了一个Fruit类,在这个类中定义了抽象方法info(),然后定义Cherry类继承Fruit类,实现抽象方法info(),可以实例化Cherry对象,并调用它的info()方法。
 
  二、接口
 
  1.接口里面所有的变量都是常量,所有的方法都是抽象方法。
 
  2.在定义接口需要用interface关键字声明:例如:
 
  interface Fruit{
 
  int MAX_WEIGHT = 1000;  //全局常量
 
  void printInfo();        //定义抽象方法
 
  }
 
  从上面的例子中,我们可以看到定义抽象方法printInfo()并没有使用abstract关键字修饰,接口定义方法的时默认使用”public abstract”来修饰,表示抽象方法。当接口的变量是默认使用”public static final”来修饰,表示全局常量。
 
  3.在接口中的所有方法都是抽象方法,不可以通过实例对象来调用接口中的方法,需要定义一个类,并且使用implements关键字实现接口所有的方法。
 
  4.实现接口所有的方法例子
 
  //定义Printer接口
 
  interface Printer{
 
      int max_line=20;//定义全局常量
 
      void printRun();//定义抽象方法pirntRun()
 
      void printData();//定义抽象方法printData()
 
  }
 
  //Colorprinter类实现Printer接口
 
  class Colorprinter implements Printer{
 
      //实现printRun()方法
 
      public void printRun(){
 
          System.out.println("彩色打印机正在启动");
 
  }
 
      //实现printData()方法
 
      public void printData(){
 
          System.out.println("彩色打印机正在打印中");
 
    }
 
  }
 
  
 
  public class p26 {
 
      public static void main(String[] args) {
 
          // TODO Auto-generated method stub
 
          Colorprinter c=new Colorprinter();//创建Colorprinter类的实例对象
 
          c.printRun();//调用Colorprinter类的printRun()方法
 
          c.printData();//调用Colorprinter类的printData()方法
 
    }
 
  }
 
  输出的结果是:
 
  彩色打印机正在启动
 
  彩色打印机正在打印中
 

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!