IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> JAVA——面向对象——抽象类和抽象方法abstract -> 正文阅读

[Java知识库]JAVA——面向对象——抽象类和抽象方法abstract

JAVA——面向对象——抽象类和抽象方法abstract

一、抽象类和抽象方法的概念

1.产生背景:
继承原本设计出来的用法是,子类继承父类的属性和方法。
但由于现在项目都是多人合作,继承更多用于规范代码,使代码统一。
(抽象)父类相当于一个模板的作用,不再定义属性,而是用来定义(抽象)方法名。
抽象方法只能定义在抽象类里。
2.抽象类和抽象方法的特点:
1、抽象类不能被创建对象,只能作为父类被子类继承
2、抽象方法没有方法体,只能被子类重写
3、一般父类定义成抽象类,不定义属性,方法中也没有方法体
4、子类的属性在子类中定义,抽象类的子类强制继承父类的抽象方法
3.语法(都用abstract修饰)
抽象类:

	public abstract class 类名 {
}

抽象方法

	public abstract void 方法名(); 

二、抽象类和抽象方法的举例

抽象类-父类:Animal01
抽象类中定义了抽象方法:eat()

/**
 * 新建一个动物类(抽象类)
 * @author z
 *
 */
public abstract class Animal01 {
	//定义抽象方法eat(),给Animal创建子类时,子类就必须继承并重写这个方法
	//作用是在多人合作的情况下,达到了方法名的强制统一效果
	public abstract void eat(); 
	//定义抽象方法run(),给Animal创建子类时,子类就必须继承并重写这个方法
	public abstract void run();
	
}

具体类-子类Dog01

/**
 * 新建一个狗狗类继承父类(动物类)
 * 父类是抽象类,子类就会强制重写父类的抽象方法
 * @author z
 *
 */
public class Dog01 extends Animal01{

	//子类的属性在子类中定义,不再从父类中继承
	private String name;
	private String color;
	private int age;
	
	//子类的构造方法
	public Dog01(String name,String color,int age) {
		this.name = name;
		this.color = color;
		this.age = age;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	public String getName() {
		return name;
	}
	
	public void setColor(String color) {
		this.color = color;
	}
	public String getColor() {
		return color;
	}
	
	public void setAge(int age) {
		this.age = age;
	}
	public int getAge() {
		return age;
	}
	
	//子类强制重写父类的抽象方法
	public void eat() {
		System.out.println("狗吃骨头");
	}
	//子类强制重写父类的抽象方法
	public void run() {
		System.out.println("狗伸着舌头跑步");
	}

	//子类自有的方法
	public void lookHome() {
		System.out.println("看家。");
	}
}

具体类-子类:Cat01

/**
 * 新建一个猫猫类继承父类(动物类)
 * 父类是抽象类,子类就会强制重写父类的抽象方法
 * @author z
 *
 */
public class Cat01 extends Animal01{
	
	private String name;
	private String color;
	private int age;
	private String sex;
	
	public Cat01(String name,String color,int age,String sex){
		this.name = name;
		this.color = color;
		this.age = age;
		this.sex = sex;
	}
	
	
	public void setName(String name) {
		this.name = name;
	}
	public String getName() {
		return name;
	}
	
	public void setColor(String color) {
		this.color = color;
	}
	public String getColor() {
		return color;
	}
	
	public void setAge(int age) {
		this.age = age;
	}
	public int getAge() {
		return age;
	}
	
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getSex() {
		return sex;
	}
	
	//强制重写父类的抽象方法
	public void eat() {
		System.out.println("猫吃鱼。");
	}
	
	//强制重写父类的抽象方法
	public void run() {
		System.out.println("猫走猫步。");
	}
	
	//子类自有的方法
	public void catchMouse() {
		System.out.println("抓老鼠。");
	}
}

测试这两个子类创建对象和调用方法

package com.yebuxiu.lesson01ChouXiangLei;
/**
 * 新建一个主类
 * 用来根据刚刚定义的狗狗类、猫猫类来创建对象,调用方法
 * @author z
 *
 */
public class Lesson01 {

	public static void main(String[] args) {

		//new一个狗狗对象
		Dog01 d1 = new Dog01("狗子一号","黑色",3);
		
		//new一个猫猫对象
		Cat01 c1 = new Cat01("猫猫一号","白色",3,"母");
		
		//调用方法
		d1.eat();
		d1.run();
		d1.lookHome();
		
		c1.eat();
		c1.run();
		c1.catchMouse();

	}

}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 22:29:52  更:2022-04-07 22:30:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:19:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码