继承

110 阅读2分钟

继承

子承父类.

class A extends B

除了构造方法不继承外,继承其他所有东西.private的属性不能直接访问,但可以通过其他方式访问.

继承也有缺点,父类修改了,子类就会马上受到影响.

没有写继承的,默认继承Object,它是老祖宗,它没有父类.

Object中有个toString();方法,在只写引用时,默认访问的是这个方法,返回该类的十六进制的哈希值.

方法中的变量

静态方法不能访问实例变量,要访问必须先new对象.

实例方法在同一个类中,可以访问实例变量/静态变量.不在同一个类,必须先new对象才能访问实例变量.

变量分为局部变量和成员变量.

在方法体内的叫局部变量.

在方法体外的叫成员变量.

成员变量又分为实例变量/静态变量.

静态变量在类加载时加载到方法区,局部变量在方法运行时加载到栈内存,方法运行完毕释放,实例变量在new对象时加载到堆内存.

方法的逻辑

main只是一个普通的方法,是一个静态的方法,它是程序的入口.

静态方法

static void A(){

}

实例方法:

没有static.实例方法可以访问当前类中的实例变量,静态变量,静态方法,实例方法.

构造方法(分无参和有参):

public 类名(){}

构造方法如果要在构造方法体中赋予默认值,可以用this();这个语句,()里面用上有参的方法,这个语句只能出现在构造方法体的第一行,而且只能出现一次.

有参可以用this.name = name;

构造方法和实例方法很像,不同的是,构造方法不需要返回值类型,实例方法的方法名另取.构造方法体里主要是给各个属性赋值,实例方法能做的更多.

实例方法中的getter and setter

这个没办法偷懒,有一个属性就得写两个这个.