`
hcjdiy
  • 浏览: 5707 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

抽象类与接口的应用(一)

 
阅读更多

. 一个类永远不要去继承一个已经实现好的类,而只能继承抽象类或实现接口

范例:为抽象类实例化

abstract class A{                         //定义抽象类A

       public abstract void print();   //定义抽象方法print()

}

class B extends A{                       //子类继承抽象类

       public void print(){

              System.out.println("Hello world!");

       }

}

public class AbstractCaseDemo01{

       public static void main(String args[]){

              A a = new B();                     //通过子类为抽象类实例化

              a.print();                       //调用的方法是被子类覆写过的方法

       }

}

范例:为接口实例化

interface  A{                      //定义接口A

       public void print();  //定义抽象方法print()

}

class B implements A{                 //子类实现接口

       public void print(){

              System.out.println("Hello world!");

       }

}

public class InterfaceCaseDemo01{

       public static void main(String args[]){

              A a = new B();                     //通过子类为抽象类实例化

              a.print();                       //调用的方法是被子类覆写过的方法

       }

}

抽象类的实际应用-->模板设计

范例:抽象类的实际应用

abstract class Person{                        //定义抽象类Person

       private String name;                     //定义name属性

       private int age;                            //定义age属性

       public Person(String name,int age){            //为属性初始化

              this.name = name;                              //name属性赋值

              this.age = age;                                    //age属性赋值

       }

       public String getName(){                           //取得name属性内容

              return name;

       }

       public int getAge(){                                   //取得age属性内容

              return age;

       }

       public void say(){                                      //说话是具体功能,要定义成普通方法

              System.out.println(this.getContent());

       }

       public abstract String getContent();      //说话内容由子类定义

}

class Student extends Person{                           //定义Student继承Person

       private float score;                             

       public Student(String name,int age,float score){

              super(name,age);                                //调用父类中构造方法

              this.score = score;        

       }

       public String getContent(){                         //覆写父类中的抽象方法

              return "学生信息-->姓名:"+super.getName()+

                            ",年龄:"+super.getAge()

                            +",成绩:"+this.score;

       }

}

class Worker extends Person{                           //定义Worker继承Person

       private float salary;

       public Worker(String name,int age,float salary){ 

              super(name,age);                                //调用父类中构造方法

              this.salary = salary;

       }

       public String getContent(){                         //覆写父类中的抽象方法

              return "工人信息-->姓名:"+super.getName()+

                            ",年龄:"+super.getAge()

                            +",工资:"+this.salary;

       }

}

public class AbstractCaseDemo02{

       public static void main(String args[]){

              Person per1 = null;                             //声明Person对象

              Person per2 = null;                             //声明Person对象

              per1 = new Student("张三",20,90.0f);  //学生是一个人

              per2 = new Worker("李四",30,3000.0f);      //工人是一个人

              per1.say();                                                       //学生说学生的内容

              per2.say();                                                       //工人说工人的内容

       }

}

分享到:
评论

相关推荐

    java 抽象类与接口的练习

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计...通过这样的练习,你可以更好地理解和掌握Java中的抽象类与接口,以及它们在实际开发中的应用。在实践中不断尝试和调试,将有助于深化对这两个概念的理解。

    Java抽象类与接口实验报告

    Java抽象类与接口实验报告

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

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

    java抽象类与接口区别

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

    第7章 抽象类与接口.ppt

    值得注意的是,Java支持单继承,意味着一个类只能直接继承一个抽象类,但可以通过接口实现多重继承的效果。 接口(interface)则是一个完全抽象的类,它不包含任何方法的实现。接口中所有的方法默认都是public和...

    JAVA中抽象类与接口的区别

    在Java编程语言中,抽象类(Abstract Class)与接口(Interface)是实现抽象与多态性的两种关键机制。这两种机制的出现,极大地丰富了Java语言的面向对象特性,并为开发者提供了更为灵活的设计选择。下面将从多个...

    java 抽象类与接口的区别

    在Java编程语言中,抽象类和接口是两种重要的面向对象设计概念,它们都用于实现多态性,但各自具有不同的特点和应用场景。了解并熟练掌握它们的区别对于编写高质量的Java代码至关重要。 首先,抽象类是一种不能被...

    抽象类与接口的区别

    #### 一、理解抽象类与接口的基本概念 在面向对象编程中,抽象类和接口都是重要的概念,用于描述共有的特性或行为,但它们在实现方式和用途上有所不同。 **抽象类**: - **定义**:抽象类是一个包含了抽象方法(未...

    C#抽象类与接口方法

    【C#抽象类与接口方法】在C#编程语言中,抽象类和接口是两种用于实现多态性和封装的关键概念,它们允许我们设计灵活、可扩展的代码结构。 抽象类是一种特殊的类,它不能被实例化,而是作为其他类的基类使用。抽象类...

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

    #### 抽象类与接口的基本概念 1. **抽象类**:抽象类是一种不能被实例化的类,它可以包含抽象方法(没有实现的方法)和具体方法(有实现的方法)。抽象类的主要目的是为子类提供一种共有的基本结构,子类必须实现...

    实验5:Java抽象类与接口.doc

    通过本实验,学生将掌握 Java 中的抽象类和接口的概念及其应用,并了解如何使用抽象类和接口来描述不同的业务逻辑。 四、实验讨论 在本实验中,我们使用抽象类和接口来描述不同的雇员类型,并演示了如何使用这些类...

    c# 中抽象类和接口的学习

    与抽象类不同,一个类可以实现多个接口,这提供了多重继承的替代方案。 接口的主要优点包括: 1. **灵活性**:接口使得一个类可以实现多个不同的行为集,而不必依赖于继承层次结构。 2. **解耦**:接口提供了一种...

    教学视频-抽象类&接口

    5. **接口与抽象类的区别**:对比两者在使用上的差异,包括继承的数量限制(一个类只能继承一个抽象类,但可以实现多个接口)和成员类型(抽象类可有实例变量,接口则没有)。 6. **适配器模式**:可能会介绍如何...

    JAVA 继承基本类、抽象类、接口区别与联系

    ### JAVA继承基本类、抽象类、接口的区别与联系 #### 一、概述 在Java语言中,类(Class)的设计是面向对象编程的核心之一。Java提供了三种方式来扩展类的功能:基本类、抽象类和接口。这三者之间既有相似之处,也...

    C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别

    这里我们将详细讨论这些概念以及抽象类与接口之间的相同点和区别。 首先,让我们来看看抽象类(Abstract Class): 1. 抽象方法是只有声明没有实现的方法,可以视为没有方法体的虚方法。例如: ```csharp public ...

    抽象类和接口 区别分析

    在面向对象编程中,抽象类与接口都是实现代码复用和提高软件模块化的重要工具。它们各自拥有独特的特性和应用场景,掌握这些概念对于编写高质量、可维护性强的代码至关重要。下面我们将深入探讨抽象类和接口之间的...

    抽象类和接口

    与抽象类不同,一个类可以实现多个接口,从而表现出多种行为。在Java中,使用`interface`关键字定义接口。在实验中,我们创建了一个`Soundable`接口,它定义了`makeSound()`和`adjustVolume()`这两个方法,表示声音...

    C#中抽象类和接口的区别.txt

    ### C#中抽象类与接口的区别 在C#编程语言中,抽象类和接口都是用于实现面向对象编程中多态特性的关键概念。它们都旨在为其他类提供一种定义行为和特性的模板或规范,但它们之间存在着重要的区别。本文将详细探讨C#...

    抽象类和接口 测试结果

    在"codePiece"代码中,可能包含了一个或多个使用抽象类和接口的例子。通过分析这些代码,我们可以看到如何在实际项目中应用这些概念。例如,可能有一个`Animal`抽象类,包含抽象方法`sound()`,而`Dog`和`Cat`类继承...

    dot Net中抽象类与接口的区别

    在.NET框架中,抽象类与接口是两种不同的编程概念,它们都扮演着实现多态性和代码重用的关键角色。尽管它们在某些方面有相似之处,但各自的特性决定了它们在实际应用中不同的适用场景。本文将深入探讨.NET中抽象类与...

Global site tag (gtag.js) - Google Analytics