java面向对象(抽象类)

一.抽象类的概念

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

方法功能声明相同,但方法功能主体不同。那么这时也可以抽取,但只抽取方法声明,不抽取方法主体。那么此方法就是一个抽象方法。

当定义了抽象函数的类也必须被abstract关键字修饰,被abstract关键字修饰的类是抽象类。

二.抽象类和抽象方法的定义

//抽象方法定义的格式:
public abstract 返回值类型 方法名(参数);
//抽象类定义的格式:
abstract class 类名 {
}
//研发部员工
abstract class Developer {
    public abstract void work();//抽象函数。需要abstract修饰,并分号;结束
}

//JavaEE工程师
class JavaEE extends Developer{
    public void work() {
        System.out.println("正在研发淘宝网站");
    }
}

//Android工程师
class Android extends Developer {
    public void work() {
        System.out.println("正在研发淘宝手机客户端软件");
    }
}

三.抽象类的特点

1.抽象类和抽象方法都需要被abstract修饰。抽象方法一定要定义在抽象类中。

2.抽象类不可以直接创建对象,原因:调用抽象方法没有意义。

3.只有覆盖了抽象类中所有的抽象方法后,其子类才可以创建对象。否则该子类还是一个抽象类。

之所以继承抽象类,更多的是在思想,是面对共性类型操作会更简单。

四.抽象类总结

1. 抽象类不能被实例化,如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。

2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。

4. 构造方法,类方法(用static修饰的方法)不能声明为抽象方法。

5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

原文地址:https://www.cnblogs.com/akiyama/p/10222178.html

时间: 2024-11-04 11:39:51

java面向对象(抽象类)的相关文章

Java面向对象-抽象类

Java面向对象-抽象类 定义:在java中,含有抽象方法的类称为抽象类,同样不能生成对象: 注意点: 1,包含一个抽象方法的类是抽象类: 2,抽象类和抽象方法都要用abstract关键字修饰: 3,抽象方法只需要声明而不需要实现: 4,抽象类必须被子类继承,(假如不是抽象类)必须重写抽象父类中的全部抽象方法: 5,抽象类不能被实例化: 我们先来定义一个抽象类: 1 package com.java1234.chap03.sec11; 2 3 /** 4 * 定义一个抽象类People 5 *

Java面向对象—抽象类和接口

本文引用海子的一篇文章:http://www.cnblogs.com/dolphin0520/p/3811437.html 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: abstract void fun(); 抽象方法必须用abstract关键字进行修饰.如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰.因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象. 下面

java面向对象- 抽象类和接口

一.final关键字: 1.final关键字在java中被称为完结器,表示最终的意思 2.final能声明类.方法.属性: 使用final声明的类不能被继承 使用final声明的方法不能被重写 使用fanal声明的变量变成常量,常量不可以被修改.变量变成常量时,一般使用大写,例如:final int AGE = 22; 二.抽象类: 1.包含一个抽象方法的类就是抽象类. 2.声明而未被实现的方法就是抽象方法.必须使用abstract声明. 3.抽象类被子类继承,不能直接对其进行实例化,必须通过其

JAVA面向对象 - 抽象类、接口

抽象类 用abstract关键字来修饰一个类时,这个类就叫抽象类,用abstract关键字来修饰一个方式时,这个方法就是抽象方法.当一个类继承的父类是抽象类的话,需要我们把抽象类中的所有抽象方法全部实现.那为什么要用抽象类呢?当父类的一些方法不能确定时,可以先在抽象类里定义抽象方法. 注意事项 Ⅰ.抽象类不能被实例化 Ⅱ.抽象类不一定要包含abstract方法. Ⅲ.一旦类包含了abstract方法,则这个类必须声明为abstract Ⅳ.抽象类不能有主体 实例 1 package com.be

java面向对象的核心思想

Java面向对象-抽象类与接口 1.Java final关键字的使用 package edu.tongji.fni; /*final关键字 * 1.final关键字在java中被称为完结器,表示最终的意思 * 2.final能声明类.方法.属性: * 使用final声明的类不能被继承 * 使用final声明的方法不能被重写 * 使用final声明的变量变成常量,常量是不可以被修改的 */ class People{ //前面加了final下面的类会报错 public void tell(){ }

c# 面向对象抽象类的使用

上一篇 讲了 Java 面向对象抽象类的使用.这次我们来学习 C#面向对象抽象类的使用.其实方法理论掌握了,语言只是工具.闲话少说.下面是上一篇的需求 抽象类大家都知道,但是具体有什么用,为什么要用到抽象类.大家肯定有人不太明白.培训中心老师怎么教就怎么用.最近闲来无事.研究起面向对象理论.下面让我用一个例子来说明一下.面向对象抽象类的使用方法.只是起到一个入门和抛砖引玉的作用.(理论和语言无关) 定义和概念: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来

java面向对象编程(八)--抽象类、接口

1.抽象类 1.1抽象类概念 当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]. //抽象类的必要性[Demo124.java] public class Demo124 { public static void main(String[] args) { //Animal an=new Animal();抽象类不允许实例化 Animal an=new Cat(); an.cry(); an=new Dog(); an.cr

第6篇-JAVA面向对象Ⅱ

第6篇-JAVA面向对象Ⅱ 每篇一句 :敢于向黑暗宣战的人,心中必定充满光明 初学心得: 面向对象 春暖花开 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-05| JAVA面向对象 Ⅱ] 1.JAVA面向对象三大特征 1.封装(Encapsulation); 2.继承(Inheritance); 3.多态(Polymorphism) 2.面向对象 之 封装 什么是封装? 封装就是隐藏实现细节,仅对外提供访问接口 封装的类型有:属性封装.方法封装.类封装.组件封装.模块化封装

Java面向对象编程(一)

由于常常将Java和C++面向对象编程的原则搞乱,所以这次把相关要点分别总结一下,本文主要总结Java面向对象编程. 面向对象编程的三大特性是:继承性(inheritance), 多态性(polymorphism)和封装性(encapsulation). 一. 继承性 [类修饰词列表] class 类名 [extends 父类名] [implements 借口列表名] { 类体 } class Employee { public int workYear; public Employee() {

Java基础-抽象类和接口

抽象类与接口是Java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别. 抽象定义: 抽象就是从多个事物中将共性的,本质的内容抽取出来.     例如:狼和狗共性都是犬科,犬科就是抽象出来的概念. 抽象类: Java中可以定义没有方法体的方法,该方法的具体实现由子类完 成,该方法称为抽象方法,包含抽象方法的类就是抽象类. 抽象方法的由来: 多个对象都具备相同的功能,但是功能具体内容有所不