码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象——抽象类

时间:2015-05-03 23:22:17      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

当描述事物的时候,没有足够的信息对该事物进行描述,那么该描述对应得嘞就是一个抽象类。

1、没有方法铁定方法是抽象方法,一定定义在抽象类中

2、抽象类和抽象方法必须用abstract关键字修饰

3、抽象类可以不被实例化,因为抽象方法没有意义

4、抽象类必须由其子类覆盖掉所有的抽象方法之后,其子类才可以进行实例化,否则盖子类还是一个抽象类。

 

 

细节问题:

1、抽象类是一个父类

2、抽象类是有构造函数的,因为是给子类对象提供初始化动作的

3、抽象类中可以不定义抽象方法。

4、抽象关键字不能和 final static  private共存

 

一般类和抽象类的异同之处:

相同之处:一般类和抽象类都用于描述事物,里面都可以定义行为和属性,以及构造函数

不同之处:一般类中不可以定义抽象函数,抽象类中可以,一般类可以被实例化,但是抽象类u型

一般类可以被继承亦可以不被继承,抽象类一定要被继承,需要其子类覆盖所有的抽象方法子类才可以被实例化

例子:

package com_package2;

public abstract class Employee {
    private String name;
    private int age;
    private String id;
    private double pay;//共同属性
    Employee(String id,String name,double pay)
    {
        this.name =name;
        this.id =id;
        this.pay =pay;
        
    }
    public abstract void work();//没有抽象体的抽象方法

}
package com_package2;

public class Programmer extends Employee{

    Programmer(String id, String name, double pay) {
        super(id, name, pay);
        // TODO Auto-generated constructor stub
    }
    public void work()
    {
        
        System.out.println("coding");
    }

}
package com_package2;

public class Manager extends Employee {

    Manager(String id, String name, double pay,double bonus) {
        super(id, name, pay);
        this.bonus  = bonus;
        // TODO Auto-generated constructor stub
    }
    private double bonus;
    public void work()
    {
        System.out.println("manager");
        
    }
}

 

面向对象——抽象类

标签:

原文地址:http://www.cnblogs.com/mmlovejj/p/4474796.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!