当前位置: 首页 > news >正文

Java关于抽象类和抽象方法

引入抽象:

  • 在之前把不同类中的共有成员变量和成员方法提取到父类中叫做继承。
  • 然后对于成员方法在不同子类中有不同的内容,对这些方法重新书写叫做重写;
  • 不过如果有的子类没有用继承的方法,用别的名字对这个方法命名的话,后面的人看代码的时候不是很难看懂么,这个时候就引入抽象类和抽象方法了
  • 抽象方法:就是将子类中共性的方法抽取到父类之后,由于每个子类中执行的方法具体内容不一样,所以在父类中就不能确定具体的方法体,该方法就可以定义为抽象方法。
  • 抽象类:如果一个类中存在抽象方法,那么该类就必须声明为抽象类。、

抽象类和抽象方法的定义格式

  • 抽象方法的定义格式:
  • public abstract 返回值类型 方法名(参数列表)
  • 抽象类的定义格式:
  • public abstract class 类名{}

抽象类和抽象方法的注意事项:

  • 抽象类不能实例化。
  • 抽象类中不一定有抽象方法,不过有抽象方法的类一定是抽象类。
  • 可以有构造方法

抽象类的子类:

  • 要么重写抽象类中的所有抽象方法
  • 要么是抽象类

代码分析:

在下面我会书写一个子类和一个抽象父类,一个子类代表狗,

在这里抽象父类中定义的有eat抽象方法,因为抽象方法必须在子类中重写。所以Dog子类中必须重写eat方法,如果不重写会报错

package pdsu_zjh;

public abstract class Animal {
	private String name;
	private int age;
    //空参
	public Animal() {
		super();
		// TODO Auto-generated constructor stub
	}
    //有参
	public Animal(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
    //gets代表输出,sets代表输入·
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
    抽象方法
	public abstract void eat();//抽象方法不能有方法体所以没有大括号;	
}

这是子类

package pdsu_zjh;

public class Dog extends Animal{

	
	public Dog() {
		super();
		// TODO Auto-generated constructor stub
	}

	//在这里super中的name和age可以对在父类中继承的name和age进行初始化。
	public Dog(String name, int age) {
		super(name, age);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void eat() {
		// TODO Auto-generated method stub
		
	}
	
}

 

相关文章:

  • 使用Python解析PPT文件并生成JSON结构详解
  • 25 python 迭代器与生成器
  • 教你快速理解linux中的NUMA节点探测是干什么用的?
  • 配置多区域集成IS-IS和抓包分析
  • Python 机器学习库:Scikit-learn
  • Mysql之事务(上)
  • 后端思维之高并发处理方案
  • AI日报 - 2025年4月2日
  • 汇编学习之《test, cmp 指令》
  • vscode中的【粘滞滚动】的基本概念和作用,关闭了以后如何开启
  • 蚂蚁集团医疗AI战略启示:国产算力驱动下的医疗生态重构与场景深耕
  • WPF 浅述IsHitTestVisible属性
  • 上海某海外视频平台Android高级工程师视频一面
  • 短剧系统开发动漫短剧系统源码开发上线小程序app教程
  • K8s中CPU和Memory的资源管理
  • 实验二 Mybatis参数传递方式及特殊SQL操作
  • 钱包开发:技术、功能与安全的深度探索
  • ARM-----数据处理、异常处理、模式切换
  • Fluent-Rocky耦合插件排错(2025R1版)
  • Python 实现的运筹优化系统代码详解(整数规划问题)
  • 气候多米诺:厄尔尼诺与东南亚跨境害虫或威胁中国粮食安全
  • 美政府以拨款为要挟胁迫各州服从移民政策,20个州联合起诉
  • 中美是否计划讨论美方以芬太尼为由对华征收的特别关税?外交部回应
  • 有关部门负责人就《新时代的中国国家安全》白皮书答记者问
  • 城事 | 重庆新增热门打卡地标,首座熊猫主题轨交站亮相
  • 成就彼此,照亮世界:“中欧建交50周年论坛”在沪成功举行