java编程abstract类和方法详解

所属分类: 软件编程 / java 阅读数: 18
收藏 0 赞 0 分享

抽象类和抽象方法常用知识点:

(1)抽象类作为被继承类,子类必须实现抽象类中的所有抽象方法,除非子类也为抽象类。

也就是说,如果子类也为抽象类,可以不实现父类中的抽象方法。但是,如果有一个非抽象类

继承于抽象子类,需要实现抽象子类,抽象子类的抽象父类的所有抽象方法,新帐旧账一起算。

(2)抽象类不能用final进行修饰。

(3)抽象类不能被实例化,也就是说你用的时候不能通过new关键字创建。

(4)抽象类中可以包含抽象方法和非抽象方法,抽象方法没有方法体,也就是没有具体实现,

只是定义了有什么功能,但是非抽象方法含有方法体。

eg:

抽象父类Person:

package com.lanhuigu.java;
/** 
 * 抽象类:不能用final修饰, 
 * 可以包含抽象方法和非抽象方法, 
 * 抽象方法没有方法体,只是定义功能,没有实现; 
 * 非抽象方法为正常的方法。 
 */
public abstract class Person {
	/* 
   * abstract methods 
   */
	public abstract String eat();
	public abstract String sleep();
	/* 
   * non-abstract methods 
   */
	public String sport() {
		return "生命在于运动";
	}
}

非抽象子类Teacher:

package com.lanhuigu.java;
/** 
 * 继承于抽象类person,必须实现父类中的所有抽象方法 
 */
public class Teacher extends Person {
	@Override 
	  public String eat() {
		// TODO Auto-generated method stub 
		return "老师吃饭";
	}
	@Override 
	  public String sleep() {
		// TODO Auto-generated method stub 
		return "老师睡觉";
	}
}

非抽象子类Student:

package com.lanhuigu.java;
/** 
 * 继承于抽象类person,必须实现父类中的所有抽象方法 
 */
public class Student extends Person {
	@Override 
	  public String eat() {
		// TODO Auto-generated method stub 
		return "学生吃饭";
	}
	@Override 
	  public String sleep() {
		// TODO Auto-generated method stub 
		return "学生睡觉";
	}
}

抽象子类OthersPerson:

package com.lanhuigu.java; 
/** 
 * 抽象类继承自抽象类,可以不用实现其父类的抽象方法 
 */ 
public abstract class OthersPerson extends Person { 
  public abstract String call(); 
} 

非抽象子类ExtendsOthersPerson继承于抽象子类OthersPerson:

package com.lanhuigu.java;
/** 
 * 必须实现抽象父类OthersPerson,以及OthersPerson父类Person中 
 * 的所有抽象方法,新帐旧账一起算。 
 */
public class ExtendsOthersPerson extends OthersPerson {
	@Override 
	  public String sleep() {
		// TODO Auto-generated method stub 
		return "睡觉";
	}
	@Override 
	  public String eat() {
		// TODO Auto-generated method stub 
		return "吃饭";
	}
	@Override 
	  public String call() {
		// TODO Auto-generated method stub 
		return "打电话";
	}
}

测试代码:

package com.lanhuigu.java;
public class TestAbstract {
	public static void main(String[] args) {
		Teacher teacher = new Teacher();
		Student student = new Student();
		//OthersPerson othersPerson = new OthersPerson();//报错,抽象类不能被实例化 
		System.out.println(teacher.eat());
		System.out.println(teacher.sleep());
		System.out.println(teacher.sport());
		// 继承父类非抽象方法 
		System.out.println("==============");
		System.out.println(student.eat());
		System.out.println(student.sleep());
		System.out.println(student.sport());
		// 继承父类非抽象方法
	}
}

控制台输出:

老师吃饭
老师睡觉
生命在于运动
==============
学生吃饭
学生睡觉
生命在于运动

总结

以上就是本文关于java编程abstract类和方法详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

java中staticclass静态类详解

Java压缩文件工具类ZipUtil使用方法代码示例

Java编程关于子类重写父类方法问题的理解

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

更多精彩内容其他人还在看

Java基础之反射原理与用法详解

这篇文章主要介绍了Java基础之反射原理与用法,结合实例形式详细分析了java反射的相关概念、原理、使用方法与操作注意事项,需要的朋友可以参考下
收藏 0 赞 0 分享

java字符串的截取方法substring()代码解析

这篇文章主要介绍了java字符串的截取方法substring()代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Mybatis一对多关联关系映射实现过程解析

这篇文章主要介绍了Mybatis一对多关联关系映射实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Java整数和字符串相互转化实例详解

这篇文章主要介绍了Java整数和字符串相互转化实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Spring Boot 项目设置网站图标的方法

这篇文章主要介绍了Spring Boot 项目设置网站图标的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

java多态机制原理特点详解

在本篇文章里小编给大家分享的是关于java多态机制原理特点详解,有需要的朋友们可以跟着学习下。
收藏 0 赞 0 分享

Jmeter如何添加循环控制器

这篇文章主要介绍了Jmeter如何添加循环控制器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

java虚拟机创建失败的原因整理

在本篇文章里小编给大家整理了关于创建java虚拟机失败的解决方法和知识点,需要的朋友们可以参考学习下。
收藏 0 赞 0 分享

Java如何把int类型转换成byte

这篇文章主要介绍了Java如何把int类型转换成byte,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

linux中java获取路径的实例代码

在本篇文章里小编给大家整理的是一篇关于linux中java获取路径的实例代码以及相关知识点,有兴趣的朋友们可以学习参考下。
收藏 0 赞 0 分享
查看更多