Java蜘蛛人 欢迎大家

欢迎大家 来到我的blog , 如果我身边的朋友 有什么不懂可以直接来问我 我会细心的帮助你的. 如果网络上的朋友有什么不懂的 可以加我Java蜘蛛人 QQ48187537
posts - 54, comments - 192, trackbacks - 0, articles - 1

教大家 抽象类........

Posted on 2007-08-28 01:37 Java蜘蛛人 --郑成桥 阅读(207) 评论(0)  编辑  收藏

把一个事物搞的越不具体 就是越抽象.. 比如一个人的抽象是动物 .再抽象点是哺乳类. ..等等..  定义了一个抽象的父类 里面可以有一些抽象的方法  然后再定义子类来实现这些方法.. 用abstract 来修饰抽象. .
如  abstract class Test   //定义抽象类
{
   private String name;
   Test(String n)
    {
        name=n;
    }

  public  abstract String gethaha();  //定义一个抽象的方法.
}

抽象类是不能实例对像的..      可以定义一个抽象类的对象变量,但是他只能引用非抽象子类的对象   如:
 Test a=new Employee("xiaoqiao",9000);

import java.text.*;
import java.util.
*;
public class PersonTest
{
    
public static void main (String[] args) 
    {
        Person 
[] staff=new Person[2];
        staff
[0]=new Employee("郑成桥",5000,1989,05,06);   
        
//这里注意 Person是抽象的类 不能实例对象,可以定义一个抽象类的对象变量,但是他只能引用非抽象子类的对象
        staff
[1]=new Student("哈哈啊","你好吗");
        
        
for(Person e:staff)
        {
            System.out.println(e.getName()
+"\t"+e.getDescription());
        }
    }
}

abstract class Person  
//定义一个抽象的类
{
    private String name;
    
public Person(String n)
    {
        name
=n;
    }
    
public abstract String getDescription();//定义一个抽象的方法
    
public String getName()
    {
        
return name;
    }

}
class Employee extends Person   
//Employee实现这个抽象的类
{
    private 
double salary;
    private Date hireDay;
    
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;
    }
}
class Student extends Person
{
    private String major;
    
public Student(String n,String s)
    {
        super(n);
        major
=s;
    }
    
public String getDescription()
    {
        
return "a student majoring in"+major;
    }
    
}


                                                                                         __作者: 郑成桥

只有注册用户登录后才能发表评论。


网站导航: