本文主要介绍Java里经常使用的子类和父类的变量实例化顺序及陷阱,并结合一个Android实例来探讨此问题.日后编程中应尽量避免此陷阱. 首先看以下一段代码: 定义一个虚类Server.java package org.yanzi.test1; public abstract class Server { private static final int DEFAULT_PORT = 900; public Server() { // TODO Auto-generated constructo…
子类与父类之间的类型转换 先给一段代码 class Base { public: int a = 10; }; class pub_Derv : public Base { Base *getBase() {return this;} }; class prot_Derv : protected Base { Base *getBase() {return this;} }; class priv_Derv : private Base { Base *getBase() {return thi…
public abstract class Parent { String name = "parent"; } public class Son extends Parent{ public void print(){ this.name = "son"; System.out.println(super.name); System.out.println(this.name); } public static void main(String[] args) t…
People.java public class People { int age,leg = 2,hand = 2; protected void showPeopleMess() { System.out.printf("%d岁,%d只脚,%d只手\t",age,leg,hand); } } Student.java public class Student extends People { int number; void tellNumber() { System.out.pr…
public class qqqq extends Parent{ public static void main(String[] args) { new Child(); } } class Parent{ static{ System.out.println("父类的静态块执行"); } { System.out.println("父类的非静态块执行"); } public Parent(){ System.out.println("父类的构造函数执…
#include <iostream> using namespace std; class Father { public: virtual void show() { cout<<"this is Father"<<endl; } }; class Son:public Father { public: virtual void show() { cout<<"this is Son"<<endl; }…
1)父类构造函数 java中当调用某个类的构造方法的时候,系统总会调用父类的非静态初始化块进行初始化,这个调用是隐式的,而且父类的静态初始化代码 块总是会被执行,接着调用父类的一个或者多个构造器执行初始化,这个调用也可以通过super进行显式调用. 例如: 父类代码如下: public class Creature {//父类 {//非静态代码块 System.out.println("creature的非静态代码块正在执行"); } public Creature(){ System…