栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

【Java -- 抽象类】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Java -- 抽象类】

Java -- 抽象类
  • 抽象类特点
  • 案例

Java 中抽象类值的是用 abstract 关键字修饰的类。

抽象类特点
  1. 抽象类和抽象方法都必须使用 abstract 关键字修饰;
  2. 抽象类也可以有成员变量(变量,常量);
  3. 抽象类不可实例化,唯一作用是被继承,利用高层抽象类引用指向子类,避免直接引用实际子类;
  4. 抽象方法没有方法体(即没有大括号以及里面的内容);
  5. 类中包含抽象方法则必须声明为抽象类,类中不包含抽象方法也可以声明为抽象类;
  6. 抽象类中也可以包含非抽象方法(提高代码复用性);
  7. 子类必须重写父抽象类中所有抽象方法,否则该子类也需声明为抽象类(强迫子类实现所有抽象方法实际上定义了子类编写规范);
  8. 虽然抽象类不可实例化,但其也具有构造方法,也可自定义带参构造方法,抽象类中的构造方法只用于子类访问父类数据的初始化;
案例

首先定义一个抽象类 Animal:

public abstract class Animal {
	private String gender;
	private int age;
	
	// 抽象类不可实例化,但也有构造方法
	public Animal() {
		System.out.println("This is super class");
	}
	
	public Animal(String gender, int age) {
		this.gender = gender;
		this.age = age;
	}
	
	// 抽象类可包含非抽象方法
	public void setGender(String gender) {
		this.gender = gender;
	}
	
	public void setAge(int age) {
		this.age = age;
	}
	
	public String getGender() { 
		return gender;
	}
	
	public int getAge() {
		return age;
	}
	
	public abstract void run();
	public abstract void eat();
	public abstract void sleep();
}

定义一个子类 Tiger 继承 Animal 类,Tiger 不是抽象类,所以其必须实现 Animal 中的所有抽象方法:

public class Tiger extends Animal{
	public Tiger() {
		System.out.println("This subclass Tiger");
	}
	
	public Tiger(String gender, int age) {
		super(gender, age);
	}
	
	// 重写 Animal 类中所有抽象方法
	@Override
	public void run() {
		System.out.println("Tiger is running");
	}
	
	@Override
	public void eat() {
		System.out.println("Tiger is eating");
	}
	
	@Override
	public void sleep() {
		System.out.println("Tiger is sleeping");
	}
}

定义测试类:

public class AbstractClassDemo {
	public static void main(String[] args) {
		Tiger t = new Tiger();
		t.setGender("male");
		t.setAge(6);
		
		System.out.println("Gender: " + t.getGender() + "  Age: " + t.getAge());
		t.run();
	}
}

运行结果:

This is super class
This subclass Tiger
Gender: male  Age: 6
Tiger is running
转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1040611.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号