java抽象类学习

帮助文档 <=> API文档 <=> 程序说明文档

姓名,年龄,工号
雇员类
普通员工类
经理类

abstract:抽象,即不具体,只能修饰类和方法,不能修饰变量等。

抽象方法:被abstract关键字修饰的方法,只有函数声明,没有函数体。

抽象类:被abstarct修饰的类。
形式上看,就是含有抽象方法的类,当然也可以一个抽象方法也没有,也可以将类修饰成抽象类,这样相当于禁止
该类创建类对象。
意义上看,抽象类是指,对抽象类所描述的事物在分析时,发现有一部分功能的功能内容是不确定的,但功能一定
存在。所以就将该部分功能定义成抽象方法,没有函数体,只有函数声明。
注意:抽象类不能用new创建对象。但可以声明该抽象类的引用变量。

抽象类被子类覆盖后,若子类想使用抽象类中的功能,则必须先覆写(覆盖)所有抽象方法,只有所有抽象方法都被覆盖
(覆写),才能够创建子类对象,来调用其中的方法,如果子类只覆盖(覆写)了一部分抽象方法,则子类也是一个抽象类
(即子类必须定义成一个抽象类,因为子类继承了父类,并且没有覆盖(覆写)所有的抽想方法,相当于子类中也存在一些
抽象的方法,所以子类必须定义成一个抽象类),若子类没有定义成抽象类,且没有覆盖(覆写)父类中的所有的抽象方法
,则编译会报错。

抽象类和一般类没有什么太大的区别,只有两点不同
1,抽象类中存在一些没有函数体,只有函数声明的方法。
2,抽象类不能创建实例,因为创建类对象后,引用没有函数体的方法没有意义。

抽象类和其他父类没有区别都是从子类上抽取而来,只不过,多个子类中的功能定义相同,功能内容不同,所以父类中没有
必要有方法体,就出现了抽象函数。抽象类虽不能创建对象,但是可以有构造方法和成员变量,成员函数,构造代码块,静态
代码块。和普通的父类没有什么区别,也可是使用多态技术,也可以使用super关键字进行访问。也存在覆盖(覆写)。也可
以直接拿过来用,继承了父类(抽象类)的方法,直接调用即可。

抽象类中的抽象方法,即被abstract修饰的方法,相当于强迫子类必须覆盖(覆写)该方法,否则就不能创建该子类对象。
final修饰方法刚好相反,是强制禁止覆盖(覆写)某一个方法。
*/

abstract class Employee
{
private String name;
private int age;
private String id;
Employee(String name,int age,String id)
{
this.name = name;
this.age = age;
this.id = id;
}
public String getName()
{
return name;
}
public abstract void work();
}

class Manager extends Employee
{
private int bonus;
Manager(String name ,int age,String id,int bonus)
{
super(name,age,id);
this.bonus = bonus;
}
public void work()
{
System.out.println("Manager work");
}
}
class Pro extends Employee
{
Pro(String name,int age,String id)
{
super(name,age,id);
}
public void work()
{
System.out.println("Pro work");
}
}
abstract class Ceo extends Employee
{
Ceo(String name ,int age ,String id)
{
super(name,age,id);
}
public void work()
{
System.out.println("Ceo work");
}
}

时间: 2024-11-05 19:35:53

java抽象类学习的相关文章

Java基础学习--抽象类与抽象函数

Java基础学习--抽象类与抽象函数 abstract class 抽象类不能制造对象,但是可以定义变量,赋给这个变量的一定是他非抽象子类的对象: 抽象类中的抽象函数没有函数体,例如:public abstract void move(); 一个抽象类可以没有任何抽象方法,所有的方法都有方法体,但是整个类是抽象的. 抽象类中所有的的抽象函数必需子类的覆盖,而非抽象函数不需要覆盖.因为子类会继承父类的函数,如果不去覆盖继承来的抽象函数,那么子类就含有抽象函数,含有抽象函数的类必须要声明为抽象类.

Java基础学习191221(可变参数,数组,Array类,稀疏数组,继承重写多态,抽象类,接口)

Java基础学习 可变参数 在方法声明中,在指定参数类型后加一个省略号(...). 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数.任何普通参数都必须在它之前声明. public class printMax { public static void main(String[] args) { printMax(1,5,8,78,415,15); } public static void printMax( double... numbers){ if (numbers.length

JAVA学习经验--总结JAVA抽象类和接口

* --总结JAVA抽象类和接口  * 1.抽象类:  *             1>抽象类可以修饰方法,修饰类,但不能修饰属性,不能被实例化  *             2>抽象类可以被继承,只能是单继承,继承抽象类必须实现抽象方法  *             3>抽象类不能被static ,fina,private一起修饰  *             4>抽象类是有多态性的  *  * 2.接口:  *             1>接口是一种特殊的抽象类,不能被实

java排序学习笔记

前面写了js的排序实现,总得玩玩java的哈. 同样,冒泡.选择.快速(这三个之前实现过也写过文章).堆排序,然后做比较. 主要遇到的难点: - -||想轻松点写个封装计时的逻辑,不想每调用一个排序就要写一个计时代码.想想,还是javascript写起来方便: java的话,我想到的方法是写一个抽象类:抽象出排序方法,实现一个排序计时方法(该方法调用了抽象排序,但在先后排序时加入计时代码[感觉像是aop操作]): 接着所有排序类都继承这个抽象类,并实现排序方法,调用的时候直接调用继承的排序计时方

Android(java)学习笔记167:Java中操作文件的类介绍

1.File类:对硬盘上的文件和目录进行操作的类.    File类是文件和目录路径名抽象表现形式  构造函数:        1) File(String pathname)       Creates a new File instance by converting the given pathname string into an abstract pathname. 2)File(File parent, String child)       Creates a new File i

java基础学习总结——接口

java基础学习总结——接口 一.接口的概念 JAVA是只支持单继承的,但现实之中存在多重继承这种现象,如“金丝猴是一种动物”,金丝猴从动物这个类继承,同时“金丝猴是一种值钱的东西”,金丝猴从“值钱的东西”这个类继承,同时“金丝猴是一种应该受到保护的东西”,金丝猴从“应该受到保护的东西”这个类继承.这样金丝猴可以同时从 “动物类”.“值钱的东西类”.“应该受到保护的东西” 这三个类继承,但由于JAVA只支持单继承,因此金丝猴只能从这三个类中的一个来继承,不能同时继承这三个类.因此为了封装现实生活

《深入Java虚拟机学习笔记》- 第5章 Java虚拟机

一.JVM的生命周期 当启动一个Java程序时,一个Java虚拟机实例就诞生了:当该程序关闭退出时,这个Java虚拟机也就随之消亡: JVM实例通过调用某个初始类的main方法来运行一个Java程序:这个main方法必须是public.static的,而且返回值必须是void:任何一个拥有这样的main方法的类都可以作为Java程序运行的起点: Java程序初始类中的main方法,将作为该程序初始线程的起点,其它任何线程都是由这个初始线程启动的: 守护线程和非守护线程 守护线程通常是由虚拟机自己

Java设计模式学习记录-桥接模式

前言 这次介绍结构型设计模式中的第二种模式,桥接模式. 使用桥接模式的目的就是为了解耦,松散的耦合更利于扩展,但是会增加相应的代码量和设计难度. 桥接模式 桥接模式是为了将抽象化与实现化解耦,让二者可以独立地变化.方便对每一部分的扩展,以及单独的维护.抽象化的一方与实现化的一方之间建立一个桥梁,这样两者的依赖关系就可以通过这个桥梁来建立了. 举例 三个小动物要过河,分别是小猪,小鸡,小马,小猪要去河对面的空地晒太阳,小鸡要去河对面的小树林里找虫子吃,小马要去河对面的草地里吃草.那么它们三个都要经

Java设计模式学习记录-装饰模式

前言 装饰模式也是一种结构型模式,主要是目的是相对于类与类之间的继承关系来说,使用装饰模式可以降低耦合度.JDK中有不少地方都使用到了装饰模式,例如Java的各种I/O流,javax.swing包中一些图形界面构件功能的增强等地方都运用了装饰模式. 装饰模式 定义 装饰模式的定义是:在不改变原类文件以及不使用继承的情况下,动态的扩展一个对象的功能.装饰模式是通过创建一个包装对象来实现的,也就是用装饰来包裹真实的对象. 举例 还是老规矩,举例说明,在给亲朋好友过生日时会买生日蛋糕,然后生日蛋糕又有