关于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);
}
}

 

posted @   diligently  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示