抽象类能继承一个普通类(或抽象类),实现多个接口。 抽象类和普通类相比只是不能被实例化,只能作为子类的超类。 抽象类是用来捕捉子类的通用特性的,被用来创建继承层级里子类的模板。 可以有默认的方法实现。 抽象类可以有构造方法。 可以有main方法。 不必须有抽象方法,但是包含抽象方法的类一定是抽象类。 ===接口=== 接口能实现多个其他接口。 接口是抽象方法的集合,一个类实现了某个接口就必须实现抽象方法。 接口抽象方法默认修饰符是public(可以不写),不能使用其他修饰符。 java 8中接口可以包含具体的方法实现,方法实现必须default修饰。
String是不可修改的,且java运行环境中对string对象有一个对象池保存这个后半句“对string对象有一个对象池保存”应该是不准确的吧。
String s1 = new String("hello"); String s2 = new String("hello"); System.out.println(s1 == s2); //打印false而如果是下面这种字面量倒是可以勉强这么说
String s1 = "hello"; String s2 = "hello"; String s3 = "helloworld"; System.out.println(s1 == s2); //打印true以上仅供一起探讨研究。