Parcelable在子类中实现的方法

转自:http://stackoverflow.com/questions/4049627/parcelable-and-inheritance-in-android

public abstract class A implements Parcelable {
    private int a;

    protected A(int a) {
        this.a = a;
    }

    public void writeToParcel(Parcel out, int flags) {
        out.writeInt(a);
    }

    protected A(Parcel in) {
        a = in.readInt();
    }
}

public class B extends A {
    private int b;

    public B(int a, int b) {
        super(a);
        this.b = b;
    }

    public static final Parcelable.Creator<B> CREATOR = new Parcelable.Creator<B>() {
        public B createFromParcel(Parcel in) {
            return new B(in);
        }

        public B[] newArray(int size) {
            return new B[size];
        }
    };

    public int describeContents() {
        return 0;
    }

    public void writeToParcel(Parcel out, int flags) {
        super.writeToParcel(out, flags);
        out.writeInt(b);
    }

    private B(Parcel in) {
        super(in);
        b = in.readInt();
    }
}
时间: 2025-01-21 00:25:40

Parcelable在子类中实现的方法的相关文章

PHP中子类重载父类的方法【parent::方法名】_php实例

在PHP中不能定义重名的函数,也包括不能再同一个类中定义重名的方法,所以也就没有方法重载.单在子类中可以定义和父类重名的方法,因为父类的方法已经在子类中存在,这样在子类中就可以把从父类中继承过来的方法重写. 子类中重载父类的方法就是在子类中覆盖从父类中继承过来的方法,父类中的方法被子类继承过来不就可以直接使用吗?为什么还要重载呢?因为有一些情况我们必须要覆盖的.例如,有一个"鸟"类,在这个类中定义了鸟的通用方法"飞翔".将"鸵鸟"类作为它的子类,

php面向对象中子类中重载父类详解

因为在PHP中不能存在同名的函数,所以在同一个类中也就不能定义重名的方法.这里所说的重载是指在    子类中可以定义和父类同名的方法从而覆盖从父类中继承过来的方法. 子类中重载父类的方法  代码如下 复制代码 <?php       class Person{                                                                           public $name;                                

重写UITableViewCell子类中属性的setter方法来实现隐藏或显示该cell中的某些控件

重写UITableViewCell子类中属性的setter方法来实现隐藏或显示该cell中的某些控件 为什么会需要这样子的一种方法来实现隐藏或者显示一个cell中的某些控件呢? 其实,隐藏cell中某些控件可以直接在tableView:cellForRowAtIndexPath:方法中直接实现,我们需要判断外部变量比如bool值来决定是否显示这个控件,但需要额外的代码写在tableView:cellForRowAtIndexPath:方法当中,如果我们把bool值传递给该cell让其自己判断是否

PL/SQL小技巧一个:在子类中怎么调用父类被重载的方法

技巧 在C++和Java中,这是非常容易实现的C++是:父类名::被重载的方法(参数表), 比如:      ancestorclass::name({arguments});而在Java中,可以用super代替父类,如这样实现      Super.name({arguments}); 而在Oracle 9i Release2中都没实现这样的功能,当然我们可以用其它办法来实现这样的功能. 父类对象类型Create or Replace Type parent as object (      

c++与java中子类中调用父类成员的方法

java中: import java.util.Scanner; public class ClassTest{ public static void main(String args[]){ child ch=new child(2); parent p=ch; p.print(); //p.print2();//调用错误,父类中没有改成员方法,该方法只属于子类! } } class parent{ int xx; parent(int x){ xx=x; } void print(){ Sy

多态-java中为什么会自动执行子类重写父类的方法?

问题描述 java中为什么会自动执行子类重写父类的方法? 问题: 1.在main方法中我没有调用paint方法,为什么它会自动被调用? 2.老师说这是多态,可是多态不是需要三个条件实现么?继承,重写方法,父类引用指向子类对象,这里没有第三点啊 代码如下: public class GameFrame extends Frame{ public void launchFrame(){ setSize(500,500); setLocation(100,100); setVisible(true);

重写-JAVA中子类覆盖了父类的方法,是否还有办法通过子类调用父类同一方法?

问题描述 JAVA中子类覆盖了父类的方法,是否还有办法通过子类调用父类同一方法? JAVA中子类覆盖了父类的方法,是否还有办法通过子类调用父类同一方法? 解决方案 使用super.methodName();调用. Java中super关键字指代的是父类. this关键字指代的是自身. 解决方案二: 用super.方法名调用 解决方案三: 试试super.xxx 解决方案四: 直接用super.方法名调用对应的方法

android中的Activity及其子类中必须重写其生命周期的什么方法呢

问题描述 android中的Activity及其子类中必须重写其生命周期的什么方法呢 android中的Activity及其子类中必须重写其生命周期的什么方法呢 必须重写的是不是只有oncreat方法,其他生命周期方法不一定要重写吧 解决方案 一般情况下 只有一个onCreate()是必须重写的,其它的根据需要来

为什么Set及子类中没有提供随机取元素的方法

问题描述 在List中提供了get等方法来实现随机取在容器中的元素,但是,为什么在Set中没有提供呢,如果要在Set及子类中实现随机读取元素,该怎么操作,不可能自己去遍历或将Set存到List中去吧. 解决方案 1.可以用Set的一下两个方法获取可以随机访问的数组:引用 Object[] toArray() 返回一个包含 set 中所有元素的数组. <T> T[] toArray(T[] a) 返回一个包含 set 中所有元素的数组:返回数组的运行时类型是指定数组的类型. 2.可以继承Hash