首页 > 开发 > Java > 正文

java编程abstract类和方法详解

2024-07-13 10:14:31
字体:
来源:转载
供稿:网友

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

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

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

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

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

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

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

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

eg:

抽象父类Person:

java;">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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表