1 static
!静态(属性和代码块)的,只加载一次。
!静态先:父类静态(属性+代码块)---->子类静态
!如果创建子对象了,一定先构造,相应父对象。(先初始父类(属性+动态代码块)+父构造 )
而且子构造调用前,子类也要初始化(子属性+动态代码块)
package com.sxt;
/**
* <h3>solr-code</h3>
* <p></p>
*
* @author : Mr.Gao
* @date : 2021-01-01 22:46
**/
public class test {
public static void main(String args[]) {
Father f = new Son();
}
}
class Father {
public Father() {
System.out.println("Father Construct");
}
static int a=printFahter();
static int printFahter() {
System.out.println("print in father");
return 1;
}
}
class Son extends Father {
public Son() {
System.out.println("Son Construct");
}
static int b=printSon();
static int printSon() {
System.out.println("print in son");
return 2;
}
}
"C:\Program Files\Java\jdk1.8.0_101\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\lib\idea_rt.jar=55930:C:\Program Files\JetBrains\IntelliJ IDEA 2019.3.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_101\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_101\jre\lib\rt.jar;D:\IdeaProjects\solr-java\target\classes;D:\maven\maven_local_repository\org\apache\solr\solr-solrj\7.7.2\solr-solrj-7.7.2.jar;D:\maven\maven_local_repository\commons-io\commons-io\2.5\commons-io-2.5.jar;D:\maven\maven_local_repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;D:\maven\maven_local_repository\org\apache\httpcomponents\httpclient\4.5.6\httpclient-4.5.6.jar;D:\maven\maven_local_repository\org\apache\httpcomponents\httpcore\4.4.10\httpcore-4.4.10.jar;D:\maven\maven_local_repository\org\apache\httpcomponents\httpmime\4.5.6\httpmime-4.5.6.jar;D:\maven\maven_local_repository\org\apache\zookeeper\zookeeper\3.4.14\zookeeper-3.4.14.jar;D:\maven\maven_local_repository\org\codehaus\woodstox\stax2-api\3.1.4\stax2-api-3.1.4.jar;D:\maven\maven_local_repository\org\codehaus\woodstox\woodstox-core-asl\4.4.1\woodstox-core-asl-4.4.1.jar;D:\maven\maven_local_repository\org\noggit\noggit\0.8\noggit-0.8.jar;D:\maven\maven_local_repository\org\slf4j\jcl-over-slf4j\1.7.24\jcl-over-slf4j-1.7.24.jar;D:\maven\maven_local_repository\org\slf4j\slf4j-api\1.7.24\slf4j-api-1.7.24.jar" com.sxt.test
print in father
print in son
Father Construct
Son Construct
Process finished with exit code 0
这个new实例的方法,具体怎么执行了的?
例二:
package com.sxt;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
/**
* <h3>solr-code</h3>
* <p>测试</p>
*
* @author : Mr.Gao
* @date : 2020-12-31 23:29
**/
public class TestSolrApp {
public static final String SOLR_URL_SXT_CAR="http://192.168.91.174:8983/solr/sxt-car";
private static HttpSolrClient solrClient = null;
static {
solrClient= new HttpSolrClient.Builder(SOLR_URL_SXT_CAR).build();
}
public static void main(String[] args) {
System.out.println(solrClient);
}
}
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
org.apache.solr.client.solrj.impl.HttpSolrClient@4411d970
Process finished with exit code 0
先 private static ---->static{ }
2 abstract
abstract class 抽象类 不能new出来。可作为父类引用
abstract method 抽象方法 ,没有方法体。
子类继承父抽象类后,必须重写抽象方法。除非,子类也是抽象的
3 final
最终的(类,方法,变量)
final修饰的类不能被继承:如常用的 String / Math /System
final修饰的方法不能被 重写
final修饰的变量不能被 修改 :只能赋值一次
(final修饰基本类型,值 不可变,修饰引用类型,引用地址不可变)
public class Test {
public static void main(String[] args) {
new Student();
}
}
class Student{
/* final String name;
{
name="tom";
}*/
final String name="tom"; //与上面等效,!!声明必须赋值。
public Student(){
System.out.println("Student构造执行");
}
}