`

父、子类间的Upcasting 及 java时间的修改

    博客分类:
  • java
阅读更多
import java.util.Calendar;
 class Product {  //一般商品类
	  String productName; //名称
	  double price;  //价格
	  String ID;    //编号
	  String unit;  //单价
  
	public Product(String ID,String productName,double price,String unit){  //父类构造函数
		this.ID = ID;
		this.productName = productName;
		this.price = price;
		this.unit = unit;
	}
	public String getProductName(){
		return this.productName;
	}
	public double getPrice(){
		return this.price;
	}
	public String getID(){
		return this.ID;
	}
	public String getUnit(){
		return this.unit;
	}
	public String toString(){
		return "商品ID为:"+this.ID+"\t商品名称为:"+this.productName+"价格:"+this.price+"单位:"+this.unit;
	}
}
public class DiscountedProduct11 extends Product{
	 private Calendar startDate;
	 private Calendar endDate;
	 private double discount;  //折扣
	 public DiscountedProduct11(String ID,String productName,double price,String unit,
			 Calendar startDate,Calendar endDate,double discount){               //子类构造函数
		 super(ID,productName,price,unit);                   //****************************
		 this.startDate = startDate;
		 this.endDate = endDate;
		 this.discount = discount;
	 }
	 public Calendar getStartDate(){
		 return this.startDate;
	 } 
	 public Calendar getEndDate(){
		 return this.endDate;
	 }
	 public double getDiscount(){
		 return this.discount;
	 }
	 public String toString(){
			return "商品ID为:"+this.ID+"\n商品名称为:"+this.productName+"\n价格:"+this.price+"\n单位:"+this.unit+
					"\n开始时间为:"+this.startDate.getTime()+"\n结束时间为:"+this.endDate.getTime()+"\n折扣率为:"+this.discount;
		}
	 
	 public static void main(String args[]){
		 
		 System.out.println("当前时间为:");
		 Calendar cal = Calendar.getInstance();
		 System.out.println(cal.getTime());   //获得当前时间
		 
		 Calendar cal2=Calendar.getInstance();
		 cal2.set(Calendar.MONDAY, 10);      //修改时间属性
		 
		 System.out.println("*****************************************");
		 DiscountedProduct11 DP = new DiscountedProduct11("001","苹果",2.0,"/kg",cal,cal2,0.2);
		 System.out.println(DP);
		 
		 System.out.println("*****************************************");
		 Product p = new DiscountedProduct11("002","香蕉",3.0,"/kg",cal,cal2,0.3);  //upcasting
		 System.out.println(p);
		 
	 }
 }



分享到:
评论

相关推荐

    java多态性详解——父类引用子类对象

    在Java中,我们可以通过父类的引用变量来指向子类的对象,这种现象被称为“向上转型”(Upcasting)。例如: ```java class Animal {} // 父类 class Cat extends Animal {} // 子类 public class Test { public ...

    Java语言程序设计教程(Java 7)——入门与提高篇04

    向上转型(upcasting)是指将子类对象赋值给父类类型的变量,这是安全的,因为子类是父类的特化。 - **向下转型(downcasting)**:则是将父类类型的变量转换为子类类型。在向下转型时需要小心,因为不是所有的父类...

    个人写的关于Java笔记,较为全面

    Java 向上转型(Java Upcasting)是一种机制,用于将子类对象转换为父类对象。 Java 向下转型(Java Downcasting)是一种机制,用于将父类对象转换为子类对象。 接口 Java 接口(Java Interface)是一种抽象类,...

    java学习资料-Java继承和多态

    在Java中,向上转型(Upcasting)是自动进行的,即子类对象可以被当作父类类型引用。而向下转型(Downcasting)需要显式进行,需要注意的是,只有真正的子类对象才能安全地向下转型。 ### 封装 **1. 封装的原理** ...

    面向对象之继承-JAVA面试资料

    面向对象的继承是Java编程中的核心概念之一,它是实现代码复用和类间关系的重要机制。根据《Think in Java》的描述,复用代码是Java语言的一大魅力,而继承则是实现这一目标的关键途径之一。继承允许子类从父类继承...

    java 多态 经典讲解

    ### Java多态经典讲解 #### 一、理解Java多态 多态,作为面向对象编程的三大特性之一,是继抽象和继承之后的关键概念。它允许我们以统一的接口处理不同类型的对象,增强了代码的灵活性和可扩展性。在Java中,多态...

    JavaOOP_第6章上机练习.zip

    在Java中,多态主要通过方法重写(Override)和向上转型(Upcasting)来实现。 5. 接口:接口在Java中是一种完全抽象的类型,它只包含常量定义和抽象方法声明。接口用于定义行为规范,可以被多个类实现,实现了多...

    完整版 Java初级教程 Java语言程序设计 第5章 继承与接口(共15页).ppt

    在Java中,子类通过`extends`关键字继承父类。例如,`class SubClass extends ParentClass`。 - 子类继承了父类的非private成员变量和非private方法,这提供了代码重用的能力。 - Java不支持多重继承,意味着一个...

    Java多态的深度剖析

    1. **向上类型转换**(Upcasting):这是指将子类型的对象赋值给父类型的引用,例如将`Child`类型的对象赋值给`Parent`类型的引用。这种类型的转换是自动的,不需要显式使用`(Type)`语法。 2. **向下类型转换**...

    java编程常用英语

    4. **不可更改 (final)**:`final` 修饰符用于声明常量或防止变量、方法和类被修改。 5. **私有 (private)**:`private` 是访问控制修饰符,限制了类的成员只能在该类内部被访问。 6. **公开 (public)**:`public`...

    Java4Android 12_面向对象基础(一)

    子类可以扩展或修改父类的功能,提高代码的复用性。Java中的继承使用冒号`:`表示,例如`class SubClass extends SuperClass`。 4. **多态**:多态性允许不同类的对象对同一消息做出不同的响应。Java通过方法重写...

    java第三版课件

    2. **子类引用赋值给父类变量**:这种情况下,`a`被称为`b`的上转型引用(upcasting reference)。这意味着`a`变量现在持有`b`对象的引用,但只能访问`B`类继承自`A`类的成员变量和方法。 3. **接口回调**:接口回调...

    东北大学 研究生高级Java语言试题2017

    Upcasting是将子类对象引用赋值给父类类型,这种转换总是安全的,但可能失去子类特有的属性和方法。Downcasting是将父类对象引用强制转换为子类类型,这种转换可能会抛出ClassCastException,需要使用instanceof进行...

    Java基础入门必备单词汇总1.0

    9. **Upcasting**: 向上转型,子类对象可以被视为父类对象。 10. **Downcasting**: 向下转型,将父类对象转换为子类对象。 第四章涉及流程控制的高级结构: 1. **Case-Switch**: 用于基于不同情况执行不同代码的...

    Java程序设计复习要点.doc.pdf

    7. **向上转型(Upcasting)**:在Java中,子类对象可以被视为父类类型的引用,这被称为向上转型。这种转换是自动的,无需显式操作。 8. **继承(Inheritance)**:Java支持单继承,即一个子类只能直接继承一个父类...

    个人java总结之面向对象

    在Java中,多态主要通过方法重写(Override)和向上转型(Upcasting)来实现。方法重写允许子类对父类的方法提供自己的实现,而向上转型则使得子类对象可以被视为父类对象,从而可以在不关心具体类型的情况下调用...

    java面向对象编程指南

    在Java中,多态主要通过方法重写(Override)和向上转型(Upcasting)实现。方法重写让子类可以提供与父类相同签名但不同实现的方法,向上转型则使得子类对象可以被当作父类对象处理,调用父类方法。 五、抽象类与...

    java(5)

    上溯造型(Upcasting)是将子类对象作为父类对象来处理,允许我们使用父类引用调用子类的方法,从而实现多态。例如,`doStuff(Shape s)`可以接收任何形状的子类对象,并调用`erase()`和`draw()`方法,这体现了多态的...

    JAVA的复习资料

    例如,Java类可以定义私有(private)变量,然后通过公共(public)方法来访问和修改这些变量,确保了数据的安全性。 2. 继承:继承允许一个类(子类)继承另一个类(父类)的属性和方法,从而减少了代码重复,提高...

Global site tag (gtag.js) - Google Analytics