`
liqita
  • 浏览: 291290 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java abstract 抽象类 总结

阅读更多

 Abstract是Java中的一个重要关键字,可以用来修饰一个类或者一个方法。修饰一个方法时,表示该方法只有特征签名(signature),没有具体实现,而是把具体实现留给继承该类的子类。一个类中只要有一个abstract方法,那么这个类就要被声明为abstract,但是其中可以有非 abstract方法。
   abstract类可以使得类的设计者能够创建方法的原型,而真正的实现留给使用这个类的人。
   继承一个abstract类的子类,要么实现父类的所有abstract方法,要么也声明为abstract类,这时仍然可以保留一些abstract方法,把具体实现留给下一级的子类。
    abstract类和接口一样,不能创建它们的实例.一个抽象类即使有公共的构造函数,也无法通过new直接创建实例.因为既然它是抽象类,就至少有一个抽象方法,因此必须创建该抽象类的一个子类(通常为内部匿名类)实现其中的抽象方法 。


范例1:

abstract class shape
{
 String color;
 public void setcolor(String scolor)
 {
   color=scolor;
 }
 abstract void show();
}
class rectangle extends shape
{
 int w,h;
 public rectangle(int w1,int h1)
 {
  w=w1;
  h=h1;
  
 }
 public void show()
 {
  System.out.println("color="+color);
  System.out.println("area="+w*h);
  
 }
}
public class abstractc
{
 public static void main(String args[])
 {
  rectangle myrectangle=new rectangle(5,10);
  myrectangle.setcolor("red");
  myrectangle.show();
    }
}

范例2:

abstract class shape
{
 String color;
 public void setcolor(String scolor)
 {
   color=scolor;
 }
 abstract void show();
}
class rectangle extends shape
{
 int w,h;
 public rectangle(int w1,int h1)
 {
  w=w1;
  h=h1;
  
 }
 public void show()
 {
  System.out.println("color="+color);
  System.out.println("area="+w*h);
  
 }
}
public class abstractc
{
 public static void main(String args[])
 {
  shape shape1=new rectangle(5,10);
  shape1.setcolor("red");
  shape1.show();
    }
}

范例3:

abstract class shape
{
 String color;
 public void setcolor(String scolor)
 {
   color=scolor;
 }
 abstract void show();
}
class rectangle extends shape
{
 int w,h;
 public rectangle(int w1,int h1)
 {
  w=w1;
  h=h1;
  
 }
 public void show()
 {
  System.out.println("color="+color);
  System.out.println("area="+w*h);
  
 }
}
public class abstractc
{
 public static void main(String args[])
 {
  shape myshape[];
  myshape=new shape[2];
  myshape[0]=new rectangle(5,10);
  myshape[0].setcolor("red");
  myshape[0].show();
  myshape[1]=new rectangle(5,10);
  myshape[1].setcolor("white");
  myshape[1].show();
  
    }
}

 

 

java中abstract的用法

abstract(抽象)修饰符,可以修饰类和方法

1,abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型,也就是编译时类型,抽象类就像当于一类的半成品,需要子类继承并覆盖其中的抽象方法。

2,abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明(定义)而没有实现,实现部分以";"代替。需要子类继承实现(覆盖)。

注意:有抽象方法的类一定是抽象类。但是抽象类中不一定都是抽象方法,也可以全是具体方法。

abstract修饰符在修饰类时必须放在类名前。

abstract修饰方法就是要求其子类覆盖(实现)这个方法。调用时可以以多态方式调用子类覆盖(实现)后的方法,也就是说抽象方法必须在其子类中实现,除非子类本身也是抽象类。

注意:父类是抽象类,其中有抽象方法,那么子类继承父类,并把父类中的所有抽象方法都实现(覆盖)了,子类才有创建对象的实例的能力,否则子类也必须是抽象类。抽象类中可以有构造方法,是子类在构造子类对象时需要调用的父类(抽象类)的构造方法。
举个简单的例子下面有一个抽象类
abstract class E{
public abstract void show();//public abstract 可以省略
}
然后其它类如果继承它通常为了实现它里面的方法
class F extends E{
     void show(){
    //写具体实现的代码 
}
}
最后再主方法里面定义一个父类引用指向子类对象,就会发生多态现象,比如 
E e=new F();
e.show();
实际调用了子类里面的show()方法

分享到:
评论

相关推荐

    abstract抽象类

    在Java编程语言中,`abstract`关键字用于定义抽象类(abstract class),这是一个非常重要的概念,它为多态性提供了基础。抽象类是不能被实例化的,它们的主要目的是作为其他类的基类,提供一个公共的接口或者部分...

    Java中抽象类的学习总结

    ### Java中抽象类的学习总结 #### 一、抽象类的概念与特点 抽象类是Java编程语言中的一个重要概念,主要用于提供一种部分实现的功能,并允许子类完成剩余的实现。抽象类的特点如下: - **抽象方法**: 在定义Java...

    Java中抽象类和接口的区别

    在Java语言中,abstract class和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,...

    Java抽象类和抽象方法

    在深入探讨Java抽象类与抽象方法之前,我们首先需理解其基本概念以及它们在面向对象编程中的作用。Java作为一种广泛使用的编程语言,提供了多种机制来实现代码的复用性和灵活性,其中抽象类和抽象方法是关键特性之一...

    Java实例化一个抽象类对象的方法教程

    在Java编程语言中,抽象类是用来作为其他类的基类,它定义了一组抽象方法,这些方法必须在子类中实现。由于抽象类自身不能被实例化,这意味着你不能使用`new`关键字直接创建一个抽象类的对象。然而,尽管不能直接...

    abstract抽象类--Eclipse

    总结来说,"abstract抽象类--Eclipse"的主题涵盖了Java中的抽象类概念,如何在Eclipse环境中创建和使用它们,以及可能涉及到的"水印"技术,如图像处理和文档安全。通过抽象类,我们可以设计出灵活且可扩展的代码结构...

    JAVA中抽象类和接口的区别

    在Java语言中,abstract class 和interface 是支持抽象类定义的两种机制区别

    Java 抽象类

    在Java编程语言中,抽象类是一种特殊的类,它不能被实例化,但可以作为其他类的基类。这种设计模式的引入是为了支持多态性,它允许我们定义一个通用的接口,而具体的实现则由其子类来完成。抽象类在Java中扮演着重要...

    详细解析Java中抽象类和接口的区别

    ### 详细解析Java中抽象类和接口的区别 #### 引言 在面向对象编程中,Java作为一种广泛应用的编程语言,提供了多种方式来实现抽象的概念。其中最常用的两种机制是抽象类(abstract class)和接口(interface)。这...

    JAVA抽象类和抽象方法(abstract)实例分析

    JAVA抽象类和抽象方法实例分析 JAVA抽象类和抽象方法是Java面向对象程序设计中非常重要的概念,它们是Java编程语言的基础组成部分。抽象类和抽象方法可以帮助开发者更好地组织和设计程序架构,提高代码的可读性和...

    java抽象类与接口区别

    在Java编程中,抽象类(Abstract Class)与接口(Interface)都是实现抽象的关键工具。它们各自有着独特的优势和适用场景,掌握这两者的区别有助于开发者更好地设计系统架构。本文将深入探讨Java抽象类与接口的区别...

    宠物系统(java抽象类)

    本系统以Java为编程语言,它利用了抽象类来定义宠物的基本属性和行为,使得我们可以方便地创建各种不同类型的宠物,如狗、猫或其他动物。 在Java中,抽象类是一种不能被实例化的特殊类,它用于定义一类对象的通用...

    java 抽象类与接口的练习

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计概念,它们允许我们定义规范,供其他类去实现或继承。在这个练习中,我们将深入理解这两种机制,并通过实际的代码示例和注释来加深理解。 首先,让我们讨论...

    Java中抽象类和接口的区别与作用详解

    在Java编程语言中,`abstract class`和`interface`是两种用于定义抽象类的重要机制。这两种机制不仅支持了Java的强大面向对象特性,而且也在实际开发过程中发挥了重要作用。尽管两者在表面上看起来非常相似,但它们...

    java利用接口和抽象类改写求圆的面积和梯形的面积.docx

    在Java编程语言中,接口(Interface)和抽象类(Abstract Class)都是用于实现多态性和代码复用的重要概念。它们都无法被直接实例化,而是位于继承结构的顶层,被其他类实现或继承。接口和抽象类都可以包含抽象方法...

    Java源代码:抽象类和接口

    总结来说,抽象类和接口都是用于实现多态性的工具,但它们有明显的区别: 1. 抽象类可以包含非抽象方法和字段,而接口仅包含常量和抽象方法。 2. 一个类可以继承一个抽象类,但可以实现多个接口。 3. 抽象类提供了一...

    Java继承_抽象类与接口的应用.

    1.继承及继承实例 2.方法重写(Overwrite) 3.super关键字 4.方法重载(Overload) 5.final修饰符 6.abstract修饰符 7.抽象类 8.接口 9.接口和抽象类对比 10.接口和抽象类使用场合实例 11.总结

    浅析Java抽象类和接口的比较

    Java中的抽象类(abstract class)和接口(interface)都是用于创建抽象化模型的重要工具,它们在面向对象编程中扮演着核心角色。这两种机制都允许我们定义一组方法的签名,但不提供具体实现,从而实现“设计契约”...

Global site tag (gtag.js) - Google Analytics