当前位置:首页 > 编程教程 > java技术文章 > Java中抽象类用法与注意点实例详解

Java中抽象类的使用及其与注意事项

  • 发布时间:
  • 作者:码农之家
  • 点击:86

这篇文章主要知识点是关于Java、抽象类、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

SOA与Java:用Java技术实现面向服务
  • 类型:Java技术大小:173.8 MB格式:PDF作者:埃尔
立即下载

Java中抽象类用法与注意点实例详解

本文实例讲述了Java中抽象类用法与注意点。分享给大家供大家参考,具体如下:

一 抽象类的用法案例

1 代码

abstract class Person    //定义一抽象类Person
{
  String name;
  int age;
  String occupation;
  public abstract String talk(); // 声明一抽象方法talk()
}
class Student extends Person  // Student类继承自Person类
{
  public Student( String name, int age, String occupation ) {
    this.name = name;
    this.age = age;
    this.occupation = occupation;
  }
  @Override
  public String talk()  // 实现talk()方法
  {
    return "学生——>姓名:" + name + ",年龄:" + age + ",职业:" + occupation;
  }
}
class Worker extends Person  // Worker类继承自Person类
{
  public Worker( String name, int age, String occupation ) {
    this.name = name;
    this.age = age;
    this.occupation = occupation;
  }
  public String talk()   // 覆写talk()方法
  {
    return "工人——>姓名:" + name + ",年龄:" + age + ",职业:" + occupation;
  }
}
public class AbstractClassDemo {
  public static void main( String[] args ) {
    Student s = new Student("张三", 20, "学生"); //创建Student类对象s
    Worker w = new Worker("李四", 30, "工人");  //创建Worker类对象w
    Person s1 = new Student("王五", 20, "学生"); //通过向上转换的方法创建Student类对象s
    Person w1 = new Worker("马六", 30, "工人");  //通过向上转换的方法创建Worker类对象w
    System.out.println(s.talk());     //调用被实现的方法
    System.out.println(w.talk());
    System.out.println(s1.talk());
    System.out.println(w1.talk());
  }
}

2 运行

学生——>姓名:张三,年龄:20,职业:学生
工人——>姓名:李四,年龄:30,职业:工人
学生——>姓名:王五,年龄:20,职业:学生
工人——>姓名:马六,年龄:30,职业:工人

3 说明

本案例通过对父类引用和自身引用来实现创建一个对象。

二 抽象类中构造方法的定义使用

1 代码

abstract class Person {
  String name;
  int age;
  String occupation;
  public Person( String name, int age, String occupation ) {
    this.name = name;
    this.age = age;
    this.occupation = occupation;
  }
  public abstract String talk();
}
class Student extends Person {
  public Student( String name, int age, String occupation ) {  // 在这里必须明确调用抽象类中的构造方法
    super(name, age, occupation);
  }
  public String talk() {
    return "学生——>姓名:" + name + ",年龄:" + age + ",职业:" + occupation;
  }
}
public class AbstractConstructor {
  public static void main( String[] args ) {
    Student s = new Student("张三", 18, "学生");//第1种方式创建对象s
    Person s1 = new Student("李四", 18, "学生");//第2种方式创建对象s1
    System.out.println(s.talk());
    System.out.println(s1.talk());
  }
}

2 运行

学生——>姓名:张三,年龄:18,职业:学生
学生——>姓名:李四,年龄:18,职业:学生

3 说明

抽象类有构造方法、一般方法和属性,更重要的是还可以有一些抽象方法,需要子类去实现,而且在抽象类中声明构造方法后,在子类中必须明确调用。

抽象类不能使用final定义,因为使用final定义的类不能有子类,而抽象类使用的时候必须有子类。

抽象类之中可以没有抽象方法,但就算没有抽象方法的抽象类,其抽象的本质没有改变,所以也不能直接在外部通过关键字new实例化。

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

Java 相关电子书
学习笔记
网友NO.681891

Java抽象类概念与用法实例分析

本文实例讲述了Java抽象类概念与用法。分享给大家供大家参考,具体如下: 抽象: 就是对一个事物的大概描述 抽象方法: 以abstract修饰的方法,这种方法只声明返回数据类型,方法名和所需参数,并没有函数体。如 abstract void study(); 抽象类特点: 1.抽象类中不一定含有抽象方法;但抽象方法一定在抽象类中。 2.抽象类不具备实际功能,只能用于派生子类 3.抽象类中可以包含构造函数,但是构造函数不能被声明成抽象。抽象类中的成员方法包括一般方法和抽象方法 4.抽象方法和抽象类都必须被abstract关键字修饰 5.抽象类不可以用new创建对象,必须由子类复写所有抽象方法后,建立子类对象调用。 6.抽象类中的抽象方法要被使用,必须要子类复写所有的抽象方法后,建立子类调用。如果子类只复写了部分抽象方法,那么该子类还是一个抽象类。 7.抽象……

网友NO.203818

Java基础篇_有关接口和抽象类的几道练习题(分享)

呃,一定要理解之后自己敲!!!这几道题,使我进一步了解了接口和抽象类。 1.设计一个商品类 字段: 商品名称,重量,价格,配件数量,配件制造厂商(是数组,因为可能有多个制造厂商) 要求: 有构造函数 重写 toString 方法 重写 equals方法,进行两件商品的比较 package TT;import java.util.Arrays;public class G { private int 重量; private String 商品名称; private int 价格; private int 配件数量; private String[] 配件制造厂商列表; public G(int 重量, String 商品名称, int 价格, int 配件数量, String[] 配件制造厂商列表) { super(); this.重量 = 重量; this.商品名称 = 商品名称; this.价格 = 价格; this.配件数量 = 配件数量; this.配件制造厂商列表 = 配件制造厂商列表; } @Override public String toString() { return "G [重量=" + 重量 + ", 商品名称=" + 商品名称 + ", 价格=" + 价格 + ", 配件数量=" + 配件数量 + ", 配件制造厂商列……

网友NO.303548

java中抽象类、抽象方法、接口与实现接口实例详解

前言 对于java中的抽象类,抽象方法,接口,实现接口等具体的概念就不在这里详细的说明了,网上书本都有很多解释,主要是我懒,下面通过一个例子来说明其中的精髓要点,能不能练成绝世武功,踏上封王之路,就看自己的的啦(不要误会,我指的只是我自己啦啦) 用接口实现一个简单的计算器 1、利用接口做参数,写个计算器,能完成+-*/运算 (1)定义一个接口Compute含有一个方法int computer(int n,int m); (2)设计四个类分别实现此接口,完成+-*/运算 (3)设计一个类UseCompute,含有方法: public void useCom(Compute com, int one, int two) 此方法要求能够: * 1.用传递过来的对象调用computer方法完成运算 * 2.输出运算的结果 (4)设计一个测试类,调用UseCompute中的方法useCom来完成+-*/运算 //父类.并且使用用接口package cn.yjlblog.wwww;public interface Compute { int computer(i……

网友NO.761123

Java抽象类的概念讲解

简单来说 抽象类通常用来作为一个类族的最顶端的父类,用最底层的类表示现实中的具体事物,用最顶层的类表示该类族所有事物的共性。用abstract关键字类修饰一个类,该类叫做抽象类。 有抽象类那么肯定也有抽象方法,什么是抽象方法呢? 抽象方法就是有名字,形参列表,返回值,没有方法体的方法就做抽象方法。 抽象方法和抽象类的关系? 凡是没有方法体的方法必须使用关键字abstract修饰为抽象方法。 凡是含有抽象方法的类必须声明为抽象类。 abstract class A{ abstract public void f();//有抽象方法的一定是抽象类}abstract class B{ public void f(){//抽象类不一定有抽象方法}} 我们从举例中可以看出A类方法中没有方法体,因此使用了关键字abstract并且A类也必须声明为抽象类。 抽象类中的多态: abstract class a{ abstract public void f();}class B extends A{public void f(){ Sys……

网友NO.669012

java 抽象类的实例详解

java 抽象类的实例详解 前言: 什么是抽象类?这名字听着就挺抽象的,第一次听到这个名字还真有可能被唬住。但是,就像老人家所说的,一切反动派都是纸老虎,一切有着装x名字的概念也是纸老虎。好吧,我们已经从战略上做到了藐视它,现在就要战术上重视它,如同要解决纸老虎,就要一个牙齿一个牙齿地敲,一个爪子一个爪子地拔;解决这种抽象概念也一样,先要把它具体化,细分化,然后一个一个地来。 我一般遇到新的概念都会问三个问题: 1.这个东西有什么用?用来干什么的?它的意义在哪里?(显然,如果是没用的东西,就没必要浪费时间了;其实,弄懂了这个问题,就掌握了60%) 2.这个概念或者技能点怎么用?也就是它的表现形式,如关键字、修饰词、语法什么的。。。(这个占20%) 3.这个东西在用的过程中,有哪些关键点和细节……

<
1
>

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com