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;
类的内容
}
子类可以继承到父类的成员变量和成员方法(非私有)
当子类创建对象的时候,父类的无参构造方法首先被调用
子类创建对象的时候无论使用有参还是无参构造,父类均使用无参构造。
因此,创建类的时候若定义了一个有参构造方法,那么请手动加上一个无参构造方法。
关键字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
- Java学习笔记_005_封装与继承
- JAVA学习笔记(十)- 封装与继承
- 【JAVA_SE学习笔记】封装与继承
- JAVA学习笔记04封装,继承,多态
- Python学习笔记(基础篇)_005_列表
- Java学习笔记——类与对象(封装、继承与多态)
- JAVA学习笔记之-封装,继承,多态 总结
- java 入门学习笔记(封装,继承,多态)
- Java学习笔记(二)——封装、继承、多态
- Java学习笔记(一)----封装 继承 多态 抽象 接口
- java深入学习七之封装与继承,多态
- JAVA的封装与继承
- JAVA的继承与封装
- java学习笔记<六>继承与组合
- java学习笔记-继承与接口
- java 继承与组合学习笔记
- Java学习笔记:继承与多态
- Java学习笔记之继承与初始化
- Maven构建简单的多模块项目
- BridgeWebView的简单使用,自动调用js的代码
- CSS 工作总结(nobr标签可以防止换行)
- js 点击input弹出选择框
- 情商低的七种表现,你占了几个
- Java学习笔记_005_封装与继承
- javascript异常处理
- MTK SmartPhone Record-(6)+驱动文档总结
- spark【例子】同类合并、计算2
- mysql 外键锁机制
- swift中关于代理的循环引用问题
- VS2013配置Qt5.8.0环境
- Paragon NTFS For Mac的破解版究竟有何危害
- oracle forall关键字进行批量操作