关于Java的小知识-类的加载-参数传递-多态
/**
 * 测试类的加载顺序
 */
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);
    }
}
本文来自博客园,作者:diligently,转载请注明原文链接:https://www.cnblogs.com/luo12828-foxmail/p/16964117.html
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号