我的java学习日记(8)

Java学习第八节 之接口以及简单工厂方法

一、           抽象类

父类方法前加abstract即可把父类变成抽象类,但是父类的这些方法子类必须重写才可调用。

规则:1、不可以创建对象,即new对象;

      2、子类继承抽象类必须重写抽象方法;

      3、若子类不重写,则可以将其类也变成抽象类。

我的java学习日记(8)_第1张图片

二、           接口,关键字是interface

1、接口即是一个规范,一个规则,里边全部都是抽象类。要求子类重写。

2Java对比C++C++是可以实现多重继承的,而java只能单一继承,一个类只能有一个父类,但是可以用接口实现多继承。

3、接口也是父类,但是只有声明。里边的方法要写public,即使不写也要默认为public,所有方法只能声明,不能实现。接口也可以声明常量。

4、需要实现接口方法,必须通过子类重写。实现关键字是implements.

注意:①接口和接口之间可以继承。

②一个类可以实现多个接口。

③声明接口,必须应用接口编程。

    我的java学习日记(8)_第2张图片

三、           equalstoString方法

1equals是一个返回布尔值的方法,它对该类的两个方法进行比较,看它们是否满足“等于”的直观概念。

例如:date1.equals(date2)等价于date2.equals(date1),表示date1date2中实例对象的比较,如果相同则返回true,否则返回false

2toString方法应返回一个代表主叫对象的字符串。如果一个类有一个toString方法,就可以使用该类的一个对象作为System.out.printlnSystem.out.print方法的自变量,如果其要输出的不是String类型的话,就会自动调用toString()方法。

例如:System.out.println(date);等同于System.out.println(date.toString());它很容易让我们把一个对象输出到屏幕上。

3instanceofjavaphp的一个二元操作符(运算符),和==>,<是同一类东西,也是java的保留关键字。它的作用是判断其左边对象是否为右边类的实例。它是通过返回个布尔值来指出。

例如:(说明A是一个定义好的对象类,a是一个变量,result是布尔类型)

    result = ainstanceof A;

 

四、简单工厂法。

     我的java学习日记(8)_第3张图片

代码实现:

interface saler

{

  public void sale();

   public void back();

}

 

  //飞机售票员1

   class saler1 implements saler{

     public void sale(){

     System.out.println("sale");

     }

     public void back(){

     System.out.println("back");

     }

   }

   //火车售票员2

   class saler2 implements saler{

    public void sale(){

     System.out.println("sale");

     }

     public void back(){

     System.out.println("back");

     }

   }

  //汽车售票员3

  class saler3 implements saler{

   public void sale(){

     System.out.println("sale");

     }

     public void back(){

      System.out.println("back");

     }

  }

  //新增高铁售票员4

  class saler4 implements saler{

     public void sale(){

     System.out.println("sale");

     }

     public void back(){

     System.out.println("back");

     }

  }

  //工厂类

 class factory{

     static saler name(String type){

     if(type.equals("plane")){

       return new saler1();

     }else if(type.equals("train")){

       return new saler2();

      }else if(type.equals("bus")){

        return new saler3();

         }else if(type.equals("高铁")){

         return new saler4();

          } else{

       return null;

     }

  }

 }

 //主方法类

 public class sale1{

    public static void main(String[] args){

    saler s=factory.name("plane");

     s.sale();

     s.back();

     salers1=factory.name("train");

     s1.sale();

     s1.back();

     salers2=factory.name("bus");

     s2.sale();

     s2.back();

     salers3=factory.name("高铁");

     s3.sale();

     s3.back();

    }

 }

 

你可能感兴趣的:(java)