java学习14-面向对象(abstract抽象类)
来源:互联网 发布:工信部证书有用吗 知乎 编辑:程序博客网 时间:2024/05/17 01:33
抽象类
——当描述事物时,没有足够的信息对该事物进行描述,那么该描述对应的类就是一个抽象类。
abstract class Demo//抽象类
{
abstract /*抽象*/void show();
…
}
抽象类的特点:
(1)没有方法体的方法是抽象方法,一定定义在抽象类中。
(2)抽象类和抽象方法必须用abstract关键字所修饰。
(3)抽象类不可以被实例化。为什么?因为调用抽象方法没有意义。
(4)抽象类必须由其子类覆盖掉所有的抽象方法后,其子类才可以进行实例化。 否则,该子类还是一个抽象类。
注意:
(1)抽象类一定是一个父类。
(2)抽象类有构造方法,是给子类对象提供初始化动作的。
(3)抽象类中可以不定义抽象方法。
(4)抽象关键字不能和final、private、static关键字共存。
(4)抽象关键字不能和final、private、static关键字共存。
一般类和抽象类的区别
(1)相同之处:一般类和抽象类都用于描述事物。里面都可以定义属性和行为,以及构造函数。
(2)不同之处:一般类中不可以定义抽象函数,抽象类可以。一般类可以被实例化,抽象类不行。
一般类可以被继承,也可以不被继承,抽象类一定要被继承,需要其子类覆盖所有的抽象方法子类才可以被实例化。
例子:
//抽象类package com.dragon.src;abstract class Employee {private String name;private String id;private double pay;//getter & setterpublic String getName() {return name;}public void setName(String name) {this.name = name;}public String getId() {return id;}public void setId(String id) {this.id = id;}public double getPay() {return pay;}public void setPay(double pay) {this.pay = pay;}//构造函数public Employee() {}public Employee(String name, String id, double pay) {super();this.name = name;this.id = id;this.pay = pay;}//工作abstract void work();}//经理package com.dragon.src;public class Manager extends Employee {public Manager() {super();}public Manager(String name, String id, double pay) {super(name, id, pay);}@Overridevoid work() {System.out.println("Manage");}}//程序员package com.dragon.src;public class Programmer extends Employee {public Programmer() {super();}public Programmer(String name, String id, double pay) {super(name, id, pay);}@Overridevoid work() {System.out.println("Coding");}}//主函数package com.dragon.src;public class AbstDemo {/** * 主函数部分 * @param args */public static void main(String[] args) {Manager manager = new Manager("DRAGON", "3", 10000);manager.work();Programmer programmer = new Programmer("xiaoming", "343", 5000);programmer.work();}}
- java学习14-面向对象(abstract抽象类)
- java面向对象-抽象类abstract
- Java面向对象(五)abstract --- 抽象
- Java面向对象高级--抽象类的基本概念------abstract
- Java面向对象高级--抽象类的基本概念------abstract
- 面向对象——抽象类abstract
- 面向对象-简单抽象类 abstract 关键字
- 学习java-抽象类(Abstract class)
- java abstract抽象类学习
- 面向对象之抽象abstract
- Java重修之路(九)面向对象之final关键字,抽象类(abstract),接口(interface)
- java抽象类(abstract)
- Java-抽象类(abstract)
- 面向对象:抽象工厂(Abstract Factory)模式
- java面向对象(抽象类)
- Java面向对象(四)抽象类
- JAVA学习第十三课(继承下:抽象类abstract)
- 个人学习-java-抽象类(abstract class)
- 关于EntityFramework中连接字符串的说明
- Linux 网络编程——select
- (Relax 并查集1.1)POJ 2492 A Bug's Life(并查集的基本使用)
- iOS网络编程-iOS中Socket编程介绍
- 新的开始
- java学习14-面向对象(abstract抽象类)
- CF round167 Div1 C Dima and Horses
- 钩子函数与回调函数
- BluetoothAdapter ;BluetoothDevice;BluetoothSocket;BluetoothServerSocket;UUID和String转换;
- iOS网络编程实践--蓝牙对等网络通信实例讲解
- ubuntu 安装 搜狗输入法
- 经纬度的最简单获得方法
- iOS网络编程-MBProgressHUD等待指示器
- 手机刷机,FastBoot,S-OOF,SPL