题目二抽象类和抽象方法Java_JAVA抽象类和抽象方法(abstract)

本文详细介绍了Java中的抽象类和抽象方法,包括抽象类的定义、抽象方法的特性,以及它们在多态场景中的应用。强调了抽象类不能被实例化,且含有抽象方法的类必须声明为抽象类。同时指出,子类继承抽象类时必须实现所有抽象方法,否则子类也将是抽象类。
摘要由CSDN通过智能技术生成

一、抽象(abstract)的使用

当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类]。

我们都知道,父类是将子类所共同拥有的属性和方法进行抽取,这些属性和方法中,有的是已经明确实现了的,有的还无法确定,那么我们就可以将其定义成抽象,在后日子类进行重用,进行具体化。这样,抽象类也就诞生了。

例如,定义了“动物”父类,其中“动物名称”和“动物年龄”属性已经明确了,但是“动物叫”的方法没有明确,此时就可以将“动物叫”定义为抽象方法。

所以,抽象类是为了把相同的但不确定的东西的提取出来,为了以后的重用。定义成抽象类的目的,就是为了在子类中实现抽象类。

package javastudy;

public class AbstractDemo1 {

public static void main(String[] args) {

// TODO Auto-generated method stub

}

}

// 这就是一个抽象类

abstract class Animal {

String name;

int age;

// 动物会叫

public abstract void cry(); // 不确定动物怎么叫的。定义成抽象方法,来解决父类方法的不确定性。抽象方法在父类中不能实现,所以没有函数体。但在后续在继承时,要具体实现此方法。

}

// 抽象类可以被继承

// 当继承的父类是抽象类时,需要将抽象类中的所有抽象方法全部实现。

class cat extends Animal {

// 实现父类的cry抽象方法

public void cry() {

System.out.println("猫叫:");

}

}

二、用abstract修饰的类,即抽象类;用abstract修饰的方法,即抽象方法。

三、抽象方法不能有方法主体。格式如下:

abstract void xxx();

四、抽象类不能被实例化。因为抽象类中方法未具体化,这是一种不完整的类,所以直接实例化也就没有意义了。

五、抽象类中不一定要包含abstrace方法。也就是了,抽象中可以没有abstract方法。

六、一旦类中包含了abstract方法,那类该类必须声明为abstract类。

java抽象类、抽象方法、接口、实现接口详解

对于java中的抽象类,抽象方法,接口,实现接口等具体的概念就不在这里详细的说明了,网上书本都有很多解释,主要是我懒,下面通过一个例子来说明其中的精髓要点,能不能练成绝世武功,踏上封王之路,就看自己的 ...

Java 抽象类和抽象方法

包含抽象方法的类叫抽象类,如果一个类中包含一个或多个抽象方法,该类必须被限定为抽象的,否则编译器会报错,抽象类不可创建对象,创建抽象类的对象编译器会报错 如果从一个抽象类继承,并想创建该新类的对象,那 ...

java抽象类和抽象方法之间的关系

抽象类和抽象方法之间的关系有抽象方法的类,一定是抽象类:抽象类不一定有抽象方法当子类继承抽象类时,必须要将抽象类中的抽象方法全部实现(或者称为重写),否则子类依然是抽象类因为子类是继承父类全部内容,所 ...

java抽象类和抽象方法

首先应该明确一点的是,抽象方法必须定义在抽象类中. 先看一个抽象类的定义: public abstract class Animal { public abstract void eat(); pub ...

Java抽象类和抽象方法例子

题目:定义Shape类表示一般二维图形.Shape具有抽象方法area和perimeter,分别计算形状的面积和周长.试定义一些二维形状类(如矩形.三角形.圆形等),这些均为Shape类的子类并计算出 ...

【Java基础】抽象类和抽象方法的总结

什么是抽象类 抽象类是相同概念实体的一种抽象,Java中用关键字abstract来定义抽象类和抽象方法. 什么是抽象方法 只有方法的声明,没有方法的具体实现的方法. 抽象类和抽象方法的特点 抽象类和抽 ...

java中的抽象类和抽象方法

知识点:java中的抽象类和抽象方法 关键字abstract意为抽象的,可以用来修饰类和方法,分别称作抽象类和抽象方法 抽象类一般在多态的场景中使用 一:抽象类(abstract class) 在类的 ...

java中的抽象方法与抽象类

在继承时,会遇到一个问题.如果很多子类都要继承父类的一个方法,但是实现的逻辑都不一样. 这时候父类只提供了方法名,但是没有具体的方法体. 例如,男孩类和女孩类都继承人类这一个父类.人类有爱好这个方法, ...

Java抽象类中的抽象方法的参数对应的子类的方法的参数必须一致吗?

同学你这个涉及了两个概念. 一个是抽象方法,一个是方法重载. 先说下概念: 抽象方法就是abstract描述的方法,它本身不含实现,必须由子类实现. 方法重载则是同一个方法名,但是参数类型或者参数个数 ...

随机推荐

LoadingView

// //  LoadingView.h //  蓝桥播报 // //  Created by 小小建 on 15/7/10. //  Copyright (c) 2015年 蓝桥. All righ ...

js 一个关于图片onload加载的事

前几天一个项目让我头疼了很久,一个关于图片加载时的loading效果,因为不是太懂js,所以在网上各种找资料,但还是不理想,无赖苦心研究,终于有了一点眉目了,虽然个中还有一些道理不懂,至少目的达到了; ...

thinkphp项目在apache服务器中“去掉”index.php后出现找不到url的问题

今天将MAC中apache环境下的thinkphp项目移植到windows中得apache环境下.原本都是apache环境,而且配置都一样,死活给我这样的提示: Not Found The reque ...

12个 Linux 中 grep 命令的超级用法实例

12个 Linux 中 grep 命令的超级用法实例 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一 ...

使用JdbcTemplate操作数据库(二十九)

使用JdbcTemplate操作数据库 Spring的JdbcTemplate是自动配置的,你可以直接使用@Autowired来注入到你自己的bean中来使用. 举例:我们在创建User表,包含属性n ...

as2 删除层级影片问题

关键要将main的引用赋值,防止被误删,导致加载swf空白 /** * 删除所有对象 * @param standByRemoveMc 影片对象 * @param removeSelf 是否删除自身 ...

回溯法 leetcode题解 Combination Sum 递归法

题目大意:给出一个数组,用这些数组里的元素去凑一个target.元素可以重复取用. 感觉对这种题目还是生疏的.脑子里有想法,但是不知道怎么表达出来. 先记录下自己的递归法.应该还可以用循环实现. 回溯 ...

js事件轮询机制

console.log(1) setTimeout(function(){ console.log(2) },0); console.log(3) 毫无疑问:运行结果是1 3 2 也就是说:setTi ...

功能一: 数据库访问DAO层方法定义

功能1: 今天到现在为止 实战课程的访问量 yyyyMMdd courseID 使用数据库来进行存储我们的统计结果 Spark Streaming把统计结果写入到数据库里面 可视化前端根据: yyyy ...

DB2数据库管理常用操作

查询db2数据库相关配置(日志,字符集) db2 get db cfg for uppdb 查询db2数据库db2codepage db2set 在进行数据库导入导出的时候,可能要修改db2codep ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值