java中的抽象方法_Java中的抽象类和抽象方法
###Java中的抽象方法和抽象类:
abstract:关键字,可以用于修饰方法和类
抽象方法:不同类的方法是相似的,但是具体实现的内容又不太一样,没有具体的方法体。
抽象类:有抽象方法的类必须是抽象类
类与抽象类的关系是继承关系,但是需要重写抽象类的所有抽象方法,非抽象方法可以不用重写,
否则这个类就一定是抽象类,抽象类可以继承抽象类,也可以不用重写抽象方法。
package 抽象类;
public class Abstract {
public static void main(String[] args) {
cat cat=new cat();
cat.eat();
dog dog=new dog();
dog.eat();
}
}
abstract class Animal{
public abstract void eat();
}
class cat extends Animal{
@Override
public void eat() {
System.out.println("猫吃鱼啊");
}
}
class dog extends Animal{
@Override
public void eat() {
System.out.println("狗吃肉啊");
}
}
抽象类的特点:
抽象方法只能在抽象类里面,抽象类里面可以有其他非抽象方法
抽象方法和抽象类必须被abstract修饰
抽象类不能创建对象(不能实例化)
抽象类和类的关系也是继承
一个类继承了抽象类要么重写所有的抽象方法,要么他自己是抽象类
抽象类的成员特点:
抽象类的成员特点:
成员变量:
可以有成员变量
可以有常量
成员方法:
必须能有抽象方法
也可以有非抽象方法
构造方法:
可以有构造方法,需要对抽象类的成员变量进行初始化
几个问题:
抽象关键字abstract不可以和哪些关键字共存?
private和final不可以与abstract共存,因为被final修饰的方法不可以被重写,而且被final修饰的类不能被继承;方法被private修饰为私有时,不能被重写。
抽象类中是否有构造函数?
有,抽象类也有成员变量,也需要被初始化,而且抽象类需要被继承,被继承的类需要有构造函数初始化成员变量。
抽象类可不可以没有抽象方法?
可以。
让一个类不可以创建对象,有什么方法?
1.用abstract修饰为抽象类。
2.将构造方法私有。
java中的抽象方法_Java中的抽象类和抽象方法相关推荐
- java抽象的理解_Java中抽象类的理解
Java中抽象类的理解 创建 所有 bsp 抽象类 member 初始 dem print ---------------------------------------- ...
- java接口构造方法吗_Java中抽象类和接口中有构造方法吗?
Java中抽象类和接口中有构造方法吗? ①在接口中 不可以有构造方法 在接口里写入构造方法时,编译器提示:Interfaces cannot have constructors. A. 构造方法用于初 ...
- java多态的概念_java中多态概念、实现原理详解
一.什么是多态? 1.多态的定义 指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用) 2.多态的作用 消除类型之间的耦合关系 3.多 ...
- java可以多重继承吗_Java中的多重继承与组合vs继承
java可以多重继承吗 有时我写了几篇有关Java继承,接口和组成的文章. 在这篇文章中,我们将研究多重继承,然后了解组成优于继承的好处. Java中的多重继承 多重继承是创建具有多个超类的单个类的能 ...
- java 中的流_Java中的流(IO
Java中的流(IO流. java.io包中定义了多个流类型(类或抽象类)来实现 输入 / 输出功能,可以从不同的角度对其进行分类: 按单位可分为: 字节流 (一个字节一个字节的读取) ...
- java中的枚举_Java中的枚举
java中的枚举 Enum was introduced in Java 1.5 as a new type whose fields consists of a fixed set of const ...
- java函数式编程入口_Java中的函数式编程
前言 JDK8引入的Lambda表达式和Stream为Java平台提供了函数式编程的支持,极大地提高了开发效率.本文结合网络资源和自身使用经验,介绍下Java中的函数式编程 Java中的函数式编程 出 ...
- java中set集合_java中怎么往集合类set里添加数据??
展开全部 两种向Set中添加元素的方法,第一种是使用add()方法,每次添加一个元素到set中,当集合中不存在相32313133353236313431303231363533e59b9ee7ad94 ...
- java变量存储位置_java 中变量存储位置的区别
[原文] 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量 ...
- java中有没有栈_Java中堆和栈有什么区别
stack 和 heep 都是内存的一部分stack 空间小,速度比较快, 用来放对象的引用heep 大,一般所有创建的对象都放在这里.栈(stack):是一个先进后出的数据结构,通常用于保存方法(函 ...
最新文章
- 【web安全】Xss Exploits and Defense翻译2
- ASP实现记住密码的功能
- JEECG 3.7跨时代重构精华版发布,企业级JAVA快速开发平台
- 【RK3399Pro学习笔记】三、Debian 9 安装 ROS (Thinker Edge R)
- Netty工作笔记0062---WebSocket长连接开发
- 推模式下dataset1下显示的是...未找到项目... 问题的解决
- 翻译:RealEyes OSMF Player Sample - 第二部分:建立和配置 (转载)
- python基础:购物车代码
- MATLAB中改变默认工作路径的方法
- 各类w3school网站的区别小记
- 软件工程基础-个人项目-数独游戏
- mysql cbrt函数_PostgreSQL学习笔记5之函数和操作符一
- 渲图买桌面CPU还是服务器cpu,做图用什么显卡好,图形渲染CPU重要还是显卡重要...
- 回顾|伍鸣博士出席《华人之光-世界瞩目的华人 Web3 项目》圆桌论坛
- python生成快递取件码没了怎么办_货到速递易,但没有收到取件码,怎么办
- LeetCode记录总结
- XDOJ 235-月份判断
- python计算圆周率代码_使用 Python 计算 π 值
- JVM之类的加载过程(三):初始化——>Initialization
- 香港科技大学计算机专业博士申请,协助申请研究生MSc博士PhD,香港高校【计算机2021提前批】已经开放,含【港府奖学金】...
热门文章
- oracle segment extent block,Oracle的基础问题segment extent block
- php 正则匹配静态资源,Struts2 配置静态资源文件不经过Strut处理(正则匹配)
- param注解报错_mybatis不加@Parm注解报错的解决方案
- TestAndSet实现互斥锁
- PyMC3和Lasagne构建神经网络(ANN)和卷积神经网络(CNN)
- tensor也可以作为索引
- MFC中树形控件的应用——电话簿
- 统计学第二章--感知机
- Python 数据可视化:WordCloud 词云的构建
- 掌控谈话~让对方说“你说得对