###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中的抽象类和抽象方法相关推荐

  1. java抽象的理解_Java中抽象类的理解

    Java中抽象类的理解 创建   所有   bsp   抽象类   member   初始   dem   print ---------------------------------------- ...

  2. java接口构造方法吗_Java中抽象类和接口中有构造方法吗?

    Java中抽象类和接口中有构造方法吗? ①在接口中 不可以有构造方法 在接口里写入构造方法时,编译器提示:Interfaces cannot have constructors. A. 构造方法用于初 ...

  3. java多态的概念_java中多态概念、实现原理详解

    一.什么是多态? 1.多态的定义 指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用) 2.多态的作用 消除类型之间的耦合关系 3.多 ...

  4. java可以多重继承吗_Java中的多重继承与组合vs继承

    java可以多重继承吗 有时我写了几篇有关Java继承,接口和组成的文章. 在这篇文章中,我们将研究多重继承,然后了解组成优于继承的好处. Java中的多重继承 多重继承是创建具有多个超类的单个类的能 ...

  5. java 中的流_Java中的流(IO

    Java中的流(IO流. java.io包中定义了多个流类型(类或抽象类)来实现 输入 / 输出功能,可以从不同的角度对其进行分类: 按单位可分为: 字节流         (一个字节一个字节的读取) ...

  6. java中的枚举_Java中的枚举

    java中的枚举 Enum was introduced in Java 1.5 as a new type whose fields consists of a fixed set of const ...

  7. java函数式编程入口_Java中的函数式编程

    前言 JDK8引入的Lambda表达式和Stream为Java平台提供了函数式编程的支持,极大地提高了开发效率.本文结合网络资源和自身使用经验,介绍下Java中的函数式编程 Java中的函数式编程 出 ...

  8. java中set集合_java中怎么往集合类set里添加数据??

    展开全部 两种向Set中添加元素的方法,第一种是使用add()方法,每次添加一个元素到set中,当集合中不存在相32313133353236313431303231363533e59b9ee7ad94 ...

  9. java变量存储位置_java 中变量存储位置的区别

    [原文] 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量 ...

  10. java中有没有栈_Java中堆和栈有什么区别

    stack 和 heep 都是内存的一部分stack 空间小,速度比较快, 用来放对象的引用heep 大,一般所有创建的对象都放在这里.栈(stack):是一个先进后出的数据结构,通常用于保存方法(函 ...

最新文章

  1. 【web安全】Xss Exploits and Defense翻译2
  2. ASP实现记住密码的功能
  3. JEECG 3.7跨时代重构精华版发布,企业级JAVA快速开发平台
  4. 【RK3399Pro学习笔记】三、Debian 9 安装 ROS (Thinker Edge R)
  5. Netty工作笔记0062---WebSocket长连接开发
  6. 推模式下dataset1下显示的是...未找到项目... 问题的解决
  7. 翻译:RealEyes OSMF Player Sample - 第二部分:建立和配置 (转载)
  8. python基础:购物车代码
  9. MATLAB中改变默认工作路径的方法
  10. 各类w3school网站的区别小记
  11. 软件工程基础-个人项目-数独游戏
  12. mysql cbrt函数_PostgreSQL学习笔记5之函数和操作符一
  13. 渲图买桌面CPU还是服务器cpu,做图用什么显卡好,图形渲染CPU重要还是显卡重要...
  14. 回顾|伍鸣博士出席《华人之光-世界瞩目的华人 Web3 项目》圆桌论坛
  15. python生成快递取件码没了怎么办_货到速递易,但没有收到取件码,怎么办
  16. LeetCode记录总结
  17. XDOJ 235-月份判断
  18. python计算圆周率代码_使用 Python 计算 π 值
  19. JVM之类的加载过程(三):初始化——>Initialization
  20. 香港科技大学计算机专业博士申请,协助申请研究生MSc博士PhD,香港高校【计算机2021提前批】已经开放,含【港府奖学金】...

热门文章

  1. oracle segment extent block,Oracle的基础问题segment extent block
  2. php 正则匹配静态资源,Struts2 配置静态资源文件不经过Strut处理(正则匹配)
  3. param注解报错_mybatis不加@Parm注解报错的解决方案
  4. TestAndSet实现互斥锁
  5. PyMC3和Lasagne构建神经网络(ANN)和卷积神经网络(CNN)
  6. tensor也可以作为索引
  7. MFC中树形控件的应用——电话簿
  8. 统计学第二章--感知机
  9. Python 数据可视化:WordCloud 词云的构建
  10. 掌控谈话~让对方说“你说得对