Java学习笔记_005_封装与继承

来源:互联网 发布:金泫雅的舞蹈 知乎 编辑:程序博客网 时间:2024/05/22 00:08
public class 子类名 extens 父类名{
类的内容
}

子类可以继承到父类的成员变量和成员方法(非私有)
当子类创建对象的时候,父类的无参构造方法首先被调用
子类创建对象的时候无论使用有参还是无参构造,父类均使用无参构造。
因此,创建类的时候若定义了一个有参构造方法,那么请手动加上一个无参构造方法。


关键字super
非要调用父类有参构造方法的话,子类的构造方法里面可以加关键字super
用法:
super(参数列表);//(强制调用父类有参构造来创建对象)
super();   //(强制调用父类无参构造来创建对象)


在任何类的构造方法中,系统会在第一行自动加上super(),(即使没看见也加了)(只能放在第一行)(只能存在于构造方法中)


用super.成员变量 可以调用父类的成员变量
用super.成员方法 可以调用父类的成员方法


如果子类想调用父类的私有成员,需要调用在父类里面设置好的set()get()方法


创建子类的时候,父类会一同创建,存在内存里面属于子类的空间里面。(先创建子类的内存空间然后创建父类再创建子类的内容,子类用super链接父类)


调用变量的时候先检查局部变量,然后检查子类,最后检查父类
若子类中有和父类相同(完全一致,名字,参数数量,类型,返回类型)的成员方法,只调用子类的成员方法(方法的重写//注意区分重载)
注:子类重写后的成员方法私有度不能低于父类该方法的私有度


私有度修饰符
同一个类中调用  同一个包不同的类中  不同的包子类中  不同包其他类
public 可以 可以 可以 可以
protected 可以 可以 可以 不可以
默认 可以 可以不可以 不可以
private 可以 不可以 不可以 不可以


注(?):就算有关系(同包或者继承),如果new一个对象,new完了就只能访问对象里面的public属性,其他都不能访问


注2:protected意思就是只让子类用(不管是不是同一个包)


注3:跨包调用,需要import关键字导入父类所在的包


修饰类关键字final
final修饰的变量会变成常量
final修饰的引用变量的引用地址值不再被改变
final修饰的方法不能被子类重写
final修饰的 类 不能再产生子类


Object 类
是所有类的超类(?超级父类)
有下面几个常用成员方法
hashCode
返回对象的哈希码值,同一个对象的哈希码值一样。
getClass
得到一个类的。。。
输入 student.getClass().getName();
得到 com.ibeifenglextend3.Student
toString
System.out.println(类名)的时候会自动调用System.out.prient(toString.类名)
equalas
指示其他对象是否与此对象相等(判断的是两个对象的地址,所以内容相同但是)
类名.equals 类名
public boolean equals(Object obj){
return (this == obj);
}


规范要求相同的对象需要拥有相同的hashCode值,所以重写equals之后需要重写hashCode。


对象名 instanceof 类名 判断此对象是不是这个类的对象
如果对象属于此类,可以进行强转
Student s =(Student)obj;
0 0
原创粉丝点击