Entry: JavaとPerlの挙動の違いでハマった
JavaとPerlの挙動の違いでハマった
Initial post:
2009.09.04
|
Last modified:
2009.09.04
javaでちょっとハマった。Perlでやってたときの感覚とちょっと違う。Javaむずい。
Perlの場合
package main; my $super = superClass->new(); my $sub = subClass->new(); print $super->who; # superClass print $super->who2; # superClass=HASH(0x817f9f0) print $sub->who; # subClass print $sub->who2; # subClass=HASH(0x8198210) package superClass; sub new { bless {name => 'superClass'}, shift; } sub who { return shift->{name}; } sub who2 { return shift; } package subClass; use base qw(superClass); sub new { bless {name => 'subClass'}, shift; }
javaの場合
public class java_project { public static void main(String[] args) { superClass super_instance = new superClass(); subClass sub_instance = new subClass(); System.out.println(super_instance.who()); // superClass System.out.println(super_instance.who2()); // class superClass System.out.println(sub_instance.who()); // superClass System.out.println(sub_instance.who2()); // class subClass } } class superClass{ private String name = "superClass"; public String who() { return this.name; } public String who2() { return this.getClass().toString(); } } class subClass extends superClass { private String name = "subClass"; }
Subscribe to my RSS feed