public abstract class Person {
private String name;
public Person(String name) {
this.name=name;
}
public abstract String desption();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
/////////////
public class Student extends Person {
public Student(int id,String name,int age,Date birth){
super(name);
this.id=id;
this.age=age;
this.birth=birth;
}
@Override
public String desption() {
return ("这是学生的信息 "+age);
}
private int id;
private int age;
private Date birth;
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
/////
public class Employee extends Person {
Employee(String str,String name,Double dou)
{
super(name);
this.str=str;
this.number=dou;
}
@Override
public String desption() {
return ("是这是雇员的信息 "+str);
}
private String str;
private Double number;
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
public Double getNumber() {
return number;
}
public void setNumber(Double number) {
this.number = number;
}
}
/////
public class PersonTest {
/**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
SimpleDateFormat df=new SimpleDateFormat("yyy-mm-dd");
Person[] person =new Person[2]; //可以创建对象数组,不能直接创建对象
person[0]=new Student(123,"学生姓名",18,df.parse("1988-07-20"));
person[1]=new Employee("其它参数","雇员名字",12354.25622);
for(Person p:person){
System.out.println("这是抽象类的方法 "+p.desption());
System.out.println("抽象方法的类名 "+p.getName());
}
Person person2=new Student(789,"学名",22,df.parse("1998-08-88"));
System.out.println("单个方法 "+person2.desption());
System.out.println("单个姓名 "+person2.getName());
System.out.println(((Student) person2).getAge());
}
}
/*
实现类后,要调用子方法必须要对象转化,貌似没有接品完美
抽象类的实现方法,只能创建他的数组对象,不能实例化
用抽象类去创建继承类,可以直接创建对象,跟接口一样,但不知道与接口的好处是否一样,期待高手解答
*/
分享到:
相关推荐
Java作为一种广泛使用的编程语言,提供了多种机制来实现代码的复用性和灵活性,其中抽象类和抽象方法是关键特性之一。 ### 一、Java抽象类 #### 定义 抽象类在Java中是一种特殊类型的类,它不能被实例化,即无法...
学生通过对该项目整体框架的搭建和对动物城信息管理等模块的设计与功能实现,训练了学生对项目框架的搭建、类的封装、抽象类定义与继承、接口的定义与接口的实现等Java OOP面向对象知识点的掌握。 本项目主要包括...
抽象方法和抽象类是 Java 中的一种设计模式,用于定义接口和实现接口的基本结构。 二、实验步骤 实验步骤1:编写 Test.java 程序 在实验中,我们编写了一个简单的 Test.java 程序,包含一个没有方法体的方法。...
- `factory2`、`factory3`、`factory1` 这些文件名可能是实现工厂模式的Java源代码,分别代表了不同级别的工厂类,如简单工厂、工厂方法和抽象工厂的实现。通过查看这些源代码,可以学习到如何在实际项目中应用这些...
在Java等面向对象编程语言中,我们可以利用抽象类和抽象方法来实现简单工厂模式。 首先,我们需要理解什么是抽象方法。在面向对象编程中,抽象方法是一种没有具体实现的方法,它只有声明,没有具体的操作。这样的...
### Java抽象工厂模式实现热带工厂 #### 概述 在面向对象编程中,设计模式是一种在特定场景下解决软件设计问题的最佳实践方案。抽象工厂模式是GoF(Gamma、Helm、Johnson 和 Vlissides)所提出的23种设计模式之一...
Java 接口是一种抽象的概念,定义了一组方法的集合,但这些方法未被实现。接口的实现是指在某个类中,提供了接口中所有方法的实现。Java 的接口可以学习如何实现 Java 的接口,在编写实现程序的时候可以更好地使用。...
工厂模式分为三种主要类型:简单工厂模式、普通工厂模式(也称为工厂方法模式)和抽象工厂模式。 1. **简单工厂模式**: - 简单工厂模式中,有一个中心工厂类,它负责根据输入条件(通常是一个参数)来创建具体的...
接下来,我们将通过一个简单的Java代码示例来进一步理解面向对象抽象和继承的概念: ```java // 定义父类雇员(Employee) class Employee { private String name; private double salary; private Date birthDate...
抽象工厂模式是一种创建型设计模式,它提供了一种创建对象族的方法,而无需指定它们的具体类。在计算器的实现中,这个模式可以帮助我们构建不同类型的计算器,比如简单计算器、科学计算器等,而无需修改现有代码。 ...
在Java编程语言中,抽象方法和接口是面向对象设计中的重要概念,它们允许我们实现多态性和代码的可扩展性。在这个小练习中,我们看到了如何通过定义接口和使用抽象类来实现这些特性。 首先,接口(Interface)是...
抽象类通过使用`abstract`关键字来声明,它可以包含抽象方法(没有实现的方法)和非抽象方法(有实现的方法)。子类继承抽象类后,必须实现所有的抽象方法,除非子类也是抽象类。抽象类是多态性的基础,允许我们创建...
- **面向对象编程**:愤怒的小鸟游戏中的角色(小鸟、猪头、弹弓等)都可以抽象为Java类,每个类都有自己的属性和方法,如位置、速度、碰撞检测等。 - **事件处理**:游戏中的用户交互,如点击弹弓发射小鸟,需要...
抽象方法是Java中没有实现的函数,必须由其子类实现。抽象类至少有一个抽象方法,因此不能直接实例化。抽象类的创建允许定义共同的接口和部分实现,为子类提供了一个基础结构。抽象类与接口之间的关系在于,两者都...
在Java编程语言中,包(Package)、抽象类(Abstract Class)和接口(Interface)是面向对象编程的重要概念,它们帮助我们组织代码,实现多态性和抽象性,以提高软件的可维护性和复用性。 首先,包是Java中的命名...
在这个例子中,`Figure`是一个抽象类,它定义了一个抽象方法`show_area()`,这个方法在具体的子类`Triangle`、`Rectangle`和`Circle`中被实现。`Triangle`、`Rectangle`和`Circle`分别代表不同的图形,它们都继承自`...
【Java 抽象类与接口使用方法】 在Java编程语言中,面向对象的特性之一是继承性,这有助于解决代码复用和结构化设计的问题。当我们创建多个具有相似特性的类,如`Student`和`Employee`时,会发现有很多共享的代码。...
JavaParser是一个强大的开源项目,专为Java开发人员设计,提供了对Java源代码的解析和抽象语法树(AST)分析功能。这个项目支持从Java 1.0到Java 13的多个版本,允许开发者深入理解代码结构,进行复杂的代码操作和...
在Java中,这通常是具体类,实现了抽象产品接口中定义的方法。 在实际应用中,抽象工厂模式常常用于框架或者库的开发,例如,GUI库中的各种控件创建。例如,Windows平台和Linux平台可能有不同的按钮、窗口等控件,...
在Java编程中,抽象工厂模式常用于在多个相关产品对象之间建立关联,使得更换一个产品族变得简单,无需修改客户端代码。 在“java 图书展(抽象工厂模式)”这个主题下,我们可以深入探讨以下几个关键知识点: 1. ...