*关于:java中的传递方式
Java中只有一种传递,就是数值传递,市面上说得引用传递实际上也是数值传递,因为引用传递,传递的其实就是地址,地址就是一种数值
*关于:new关键字
new关键字到底做了哪些事情?
Person p = new Person();
1.首先在堆内存开辟了一块空间
1.1 然后隐式初始化成员变量为默认值
1.2 然后显式的初始化成员变量
2.调用Person类的构造方法
3.把堆内存生成的地址返回到接收者
*关于:继承的注意事项:
1.构造方法不能被继承,但是可以通过super关键字去访问父类的构造方法。
2.只能继承父类所有非私有的成员变量和成员方法。
3.子类的构造方法隐式的调用父类的不带参数的构造方法。
4.当父类没有不带参数的构造方法时,子类需要使用super来显式的调用父类的构造方法,super关键字是对父类的引用
5.super关键字必须是构造方法中的第一行语句。
代码举例说明:
package java1108;
class Animals{
int age = 20;
private String name;
void eat() {
System.out.println("eating...");
}
void sleep() {
System.out.println("sleeping...");
}
Animals(){
System.out.println("我是父类的构造方法");
}
}
class Dog extends Animals{
int age = 18;
Dog(){
//隐式的调用了父类的构造方法super();
System.out.println(super.age);//利用super关键字访问父类变量
System.out.println(age);
}
void eat() {
System.out.println("eating***");
}
void breaking() {
System.out.println("breaking...");
}
void info() {
super.eat();//利用super调用父类的方法
breaking();
}
}
public class Test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Animals a = new Animals();
Dog d = new Dog();
// d.name = "高飞";
d.info();
}
}
输出:
static的执行顺序:static代码块和构造函数执行顺序一样,都是先执行父类的。