List <String> ls = new ArrayList <String>(); List <Object> lo = ls; lo.add(new Object()); String s = ls.get(0);然后可以研究一下返回值。尽管Object是String的父类,但是编译器没有把Object转换为String
知道Java是强类型的语言就可以了。Ruby定义变量也不用什么类型,但是Ruby的类型是和Java一样强的。 a = File.new(); JavaScript的语法也不需要声明类型,但是它就是若类型的。C++的类型部分强,部分若弱。 int,void*可以强制转换,这就是弱。但是很多看似可以转的,在C++里就是不可以转。等学了很多门语言,才能体会到这些东西。
int i = str; //不可以.必段显示转换.如:
int i = java.lang.Integer.parseInt(str);
但是像javascript。就是弱类型语言。变量的类型无需指定。以你的赋值类型决定比如 var s="this is a string demo";
弱类型语言比如javascript 他声明任何变量都用var不进行强制限定.所以是弱类型.
强:先定义后使用 INT I=0;
弱:无需定义直接使用 I=0;
List <String> ls = new ArrayList <String>();
List <Object> lo = ls;
lo.add(new Object());
String s = ls.get(0);然后可以研究一下返回值。尽管Object是String的父类,但是编译器没有把Object转换为String
a = File.new();
JavaScript的语法也不需要声明类型,但是它就是若类型的。C++的类型部分强,部分若弱。
int,void*可以强制转换,这就是弱。但是很多看似可以转的,在C++里就是不可以转。等学了很多门语言,才能体会到这些东西。