动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

浅谈abstract关键字

05-31 17:00 761浏览
举报 T字号
  • 大字
  • 中字
  • 小字

abstract关键字可以用于类、方法、事件和索引指示器(indexer),表示其为抽象成员,抽象方法是没有方法体的方法。抽象成员,即抽象类、抽象方法、抽象事件。

抽象类具有以下特性:

  • 抽象类不能实例化。
  • 抽象类可以包含抽象方法和抽象访问器。
  • 不能用sealed修饰符修改抽象类,这意味着该类不能被继承。
  • 从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实现。
  • 在方法或属性声明中使用abstract修饰符以指示此方法或属性不包含实现。

抽象方法具有以下特性:

  • 抽象方法是隐式的virtual方法。
  • 只允许在抽象类使用抽象方法声明。
  • 抽象方法声明不提供实际的实现,所以没有方法体;方法声明只是以一个分号结束,并且在结束后没有花括号。
  • 实现由override方法提供,它是非抽象类的成员。
  • 在抽象方法声明中使用static或virtual修饰符是错误的。

除了在声明和调用语法上不同外,抽象属性的行为与抽象方法一样。

在静态属性上使用abstract修饰符是错误的。

在派生类中,通过包括使用override修饰符的属性声明可以重写抽象的基础属性。

public class AbstractTest
{
	// 程序入口
	public static void main(String[] args)
	{
		// 一旦Person类抽象了,就不可以实例化
//		Person p1 = new Person();
//		p1.eat();
	}
}

abstract class Creature
{
	public abstract void breath();
}

//类
abstract class Person extends Creature
{
	// 属性
	String name;
	int age;

	// 构造器
	public Person() {

	}

	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}

	// 抽象方法
	public abstract void eat();

	public void walk()
	{
		System.out.println("person:walk");
	}
}

//子类
class Student extends Person
{
	public Student(String name, int age) {
		super(name, age);
	}

	public void eat()
	{
		System.out.println("Student:eat");
	}

	@Override
	public void breath()
	{
		System.out.println("Student:breath");

	}
}

本文我们简单地聊了一些abstract关键字的定义和简单的使用,其中涉及到了抽象类和出抽象方法,这些知识点在动力节点在线都有讲解,感兴趣的小伙伴可以自己去学习。

0人推荐
共同学习,写下你的评论
0条评论
杨晶珍
程序员杨晶珍

98篇文章贡献357785字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Spring常见面试题

代码小兵92504-17 16:07

Java零基础实战项目——五子棋

代码小兵98804-25 13:57

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

发评论

举报

0/150

取消