/**
* 测试类的加载顺序
*/
public class Father {
public Father() {
System.out.println("This is Father contr");
}
{
System.out.println("this is Father blouk");
}
static {
System.out.println("this is Father static blouk");
}
}
class Son extends Father {
public Son() {
System.out.println("this is son cont");
}
/*
普通代码块
构造方法调用之前 会调用无参的标准的普通代码块
*/ {
System.out.println("this is Son common method");
}
/*
静态方法首先进行加载 有且只加载一次
*/
static {
System.out.println("this is son static method");
}
}
class TestMethod {
public static void main(String[] args) {
new Son();
System.out.println("+++++++++++++++++++++++++++");
new Son();
System.out.println("Second++++++++++++++++++++++");
new Father();
System.out.println("print Father===========================");
/*
this is Father static blouk
this is son static method
this is Father blouk
This is Father contr
this is Son common method
this is son cont
+++++++++++++++++++++++++++
this is Father blouk
This is Father contr
this is Son common method
this is son cont
Second++++++++++++++++++++++
this is Father blouk
This is Father contr
print Father===========================
*/
}
}
参数传递:
/**
* 传值
*/
public class SendVallue {
public void changeValue1(int age) {
age = 30;
}
public void changeValue2(Person person) {
person.setName("XXXX");
}
public void changeValue3(String string) {
string = "XXXX";
}
public static void main(String[] args) {
SendVallue sendVallue = new SendVallue();
int age =10;
sendVallue.changeValue1(age);
System.out.println(age);
Person person = new Person("asdf");
sendVallue.changeValue2(person);
System.out.println("person"+person.getName());
String string = "123";
sendVallue.changeValue3(string);
System.out.println(string);
}
}
多态:
/**
* 多态是运行期发生的事情
*/
public class Polymorphic {
public static Anmail getInstance(int key) {
Anmail result = null;
switch (key) {
case 0:
result = new Dog();
break;
case 2:
result = new Cat();
break;
case 1:
result = new Sheeps();
break;
}
return result;
}
public static void main(String[] args) {
Anmail instance = Polymorphic.getInstance(new Random().nextInt(3));
instance.eat();
System.out.println(instance);
}
}
interface Anmail {
void eat();
}
class Dog implements Anmail {
@Override
public void eat() {
System.out.println("dog eat boon" + 123123);
}
}
class Cat implements Anmail {
@Override
public void eat() {
System.out.println("cat eat fish" + 3232);
}
}
class Sheeps implements Anmail {
@Override
public void eat() {
System.out.println("sheep eat gress" + 12312312);
}
}