激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

香港云服务器
服務器之家 - 編程語言 - JAVA教程 - 簡單學習Java抽象類要點及實例

簡單學習Java抽象類要點及實例

2019-11-01 14:09java教程網 JAVA教程

這篇文章主要介紹了Java抽象類要點及實例,有需要的朋友可以參考一下

使用抽象類應該注意的幾個要點:

包含一個或者多個抽象方法的類必須被聲明為抽象類. 
將類聲明為抽象類,不一定含有抽象方法.
通常認為,在抽象類中不應該包括具體方法,建議盡量將通用的域和方法放在超類中.
抽象類不可以被實例化.即不能創建這個類的對象 
實例代碼:

復制代碼代碼如下:


import java.util.*;

 

/**
 * This program demonstrates abstract classes.
 * @version 1.01 2004-02-21
 * @author Cay Horstmann
 */
public class PersonTest
{
   public static void main(String[] args)
   {
      Person[] people = new Person[2];

      // fill the people array with Student and Employee objects
      people[0] = new Employee("Harry Hacker", 50000, 1989, 10, 1);
      people[1] = new Student("Maria Morris", "computer science");

      // print out names and descriptions of all Person objects
      for (Person p : people)
         System.out.println(p.getName() + ", " + p.getDescription());
   }
}

abstract class Person
{
   public Person(String n)
   {
      name = n;
   }

   public abstract String getDescription();

   public String getName()
   {
      return name;
   }

   private String name;
}

class Employee extends Person
{
   public Employee(String n, double s, int year, int month, int day)
   {
      super(n);
      salary = s;
      GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);
      hireDay = calendar.getTime();
   }

   public double getSalary()
   {
      return salary;
   }

   public Date getHireDay()
   {
      return hireDay;
   }

   public String getDescription()
   {
      return String.format("an employee with a salary of $%.2f", salary);
   }

   public void raiseSalary(double byPercent)
   {
      double raise = salary * byPercent / 100;
      salary += raise;
   }

   private double salary;
   private Date hireDay;
}

class Student extends Person
{
   /**
    * @param n the student's name
    * @param m the student's major
    */
   public Student(String n, String m)
   {
      // pass n to superclass constructor
      super(n);
      major = m;
   }

   public String getDescription()
   {
      return "a student majoring in " + major;
   }

   private String major;
}

 

 

在代碼塊:

復制代碼代碼如下:

 for (Person p : people)
         System.out.println(p.getName() + ", " + p.getDescription());

 

中p.getDescription(),將引用具體子類的子類對象的方法.

不可以省略Person類中的getDescription(),原因是編譯器只允許調用在類中聲明的方法.

延伸 · 閱讀

精彩推薦
473
主站蜘蛛池模板: 最近日本电影hd免费观看 | 免费看一级毛片欧美 | 日本网站在线看 | 欧美日韩亚洲成人 | 午夜久久电影 | 黄色a级片视频 | 欧美精品日日鲁夜夜添 | 伦一区二区三区中文字幕v亚洲 | 久久精品视频首页 | 欧美精品一区二区三区四区 | 精品国产观看 | 亚洲第一男人天堂 | 激情免费视频 | 免费激情网站 | 中文字幕专区高清在线观看 | 91社影院在线观看 | 国产男女 爽爽爽爽视频 | 欧美黄色大片免费观看 | 国产精品一区网站 | 成码无人av片在线观看网站 | 久久精品视频7 | 国产1区2区3区中文字幕 | 老子午夜影院 | 一区二区三区欧美在线观看 | 欧美亚洲国产日韩 | 好骚综合在线 | 一本一道久久久a久久久精品91 | 精品国产高清一区二区三区 | www.狠狠插.com| 久久久一区二区精品 | 精品一区二区三区免费视频 | 黄色aaa视频 | 欧美日韩在线播放一区 | 天堂成人国产精品一区 | 日韩在线观看视频免费 | 免费观看国产精品视频 | 亚洲一区二区中文字幕在线观看 | 亚洲生活片 | 超碰一区| 欧美成人免费在线视频 | 黄色毛片免费视频 |