美文网首页
Java抽象

Java抽象

作者: 凹特曼 | 来源:发表于2016-01-12 16:58 被阅读0次
/* File name : AbstractDemo.java */
public class AbstractDemo
{
   public static void main(String [] args)
   {

      /*
         1.抽象类 无法实例化
         2.类的功能仍然存在,它的字段,方法和构造函数都以相同的方式进行访问。
         你只是不能创建一个抽象类的实例
      */
         // Employee emp = new Employee("George W.", "Houston, TX", 43);

      Salary s = new Salary("张*", "大连设计城", 3, 3600.00);
      s.mailCheck();

      // private 实体变量只能在Salary中访问
      // s.salary = 1900;

      // Employee e = new Salary("李*", "大连高新区", 2, 2400.00);
      // System.out.println(e instanceof Salary);

      // System.out.println("\n Call mailCheck using Employee reference--");
      // e.mailCheck();
    }
}
/*使用关键字 abstract 来声明一个抽象类。
   它出现在关键字 class 的前面*/
public abstract class Employee
{
   private String name;
   private String address;
   private int number;
   // 姓名 地址 员工编号
   public Employee(String name, String address, int number)
   {
      System.out.println("构造一个员工");
      this.name = name;
      this.address = address;
      this.number = number;
   }
   public double computePay()
   {
     System.out.println("Inside Employee computePay");
     return 0.0;
   }
   public void mailCheck()
   {
      System.out.println("Employee工资检查邮件发给: " + this.name
       + " " + this.address);
   }
   public String toString()
   {
      return name + " " + address + " " + number;
   }
   public String getName()
   {
      return name;
   }
   public String getAddress()
   {
      return address;
   }
   public void setAddress(String newAddress)
   {
      address = newAddress;
   }
   public int getNumber()
   {
     return number;
   }

  public static void main(String[] args) {

  }

   /*
   1.如果一个类中含有一个抽象方法,类必须也是抽象的。
   抽象方法无需定义,并且它的签名以分号结束,不需要花括号
   2.任何一个子类必须覆盖这个抽象方法,
   或者继续将它声明为抽象方法。
   3.抽象方法不能有方法体
   */
    public abstract void travel();
}
/* File name : Salary.java */
public class Salary extends Employee
{
   private double salary; //Annual salary
   // 姓名 地址 员工编号 工资
   public Salary(String name, String address, int number, double
      salary)
   {
       super(name, address, number);
       setSalary(salary);
   }
   public void mailCheck()
   {

       System.out.println("【Salary】工资检查邮件发给:" + getName()
       + " with salary " + this.salary);
   }
   public double getSalary()
   {
       return salary;
   }
   public void setSalary(double newSalary)
   {
       if(newSalary >= 0.0)
       {
          salary = newSalary;
       }
   }
   public double computePay()
   {
      System.out.println("计算工资付给:" + getName());
      return salary/52;
   }

  // // 抽象方法实现
  public  void travel(){

  }
  // 声明
  // public abstract void travel();

}

相关文章

  • 第3章 创建型模式-工厂方法模式

    ■ 抽象工厂 Creator.java ■ 抽象产品 Product.java ■ 具体工厂 ConcreteCr...

  • 还为那些设计模式烦恼吗-工厂方法模式

    定义 例子 抽象工厂:Factory.java 具体工厂:ConcreteFactory.java 抽象产品:Pr...

  • java 抽象

    abstract修饰符可以用于类、方法、属性、事件和索引指示器(indexer),表示其为抽象成员,抽象方法是没有...

  • Java 抽象

    抽象类除了不能实例化对象之外,类的其他功能依然存在,成员变量,成员方法和构造方法的访问方式和普通类一样。 由于抽象...

  • Java抽象

  • Java抽象

    抽象的概念 如果父类当中的方法不确定如何进行方法体实现,可以将此方法定义为抽象方法 Boolean 类型的get方...

  • java抽象

    抽象的概念 抽象方法和抽象类的格式 抽象方法:就是加上abstarct关键字,然后去掉大括号,直接分号结束。抽象类...

  • 接口类&抽象类

    java的接口类和抽象类的特点 java中抽象类的特点: 抽象类和抽象方法必须用关键字abstract修饰 2.如...

  • Java接口(interface)

    Java接口(interface) 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方...

  • JAVA中的抽象类和接口

    父类-抽象类:Telephone.java 接口:IPayGame.java 继承了抽象类的子类:CellPhon...

网友评论

      本文标题:Java抽象

      本文链接:https://www.haomeiwen.com/subject/olkckttx.html