Java 继承
来源:互联网 发布:js调用servlet 编辑:程序博客网 时间:2024/06/15 10:18
见:构造方法
子类继承父类的成员变量
1)能够继承父类的public和protected成员变量;不能够继承父类的private成员变量;
2)对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;
3)对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用。
子类继承父类的方法
1)能够继承父类的public和protected成员方法;不能够继承父类的private成员方法;
2)对于父类的包访问权限成员方法,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;
3)对于子类可以继承的父类成员方法,如果在子类中出现了同名称的成员方法,则称为覆盖,即子类的成员方法会覆盖掉父类的同名成员方法。如果要在子类中访问父类中同名成员方法,需要使用super关键字来进行引用。
注意:隐藏和覆盖是不同的。隐藏是针对成员变量和静态方法的,而覆盖是针对普通方法的。(后面会讲到)
构造方法
子类是不能够继承父类的构造器,但是要注意的是,如果父类的构造器都是带有参数的,则必须在子类的构造器中显示地通过super关键字调用父类的构造器并配以适当的参数列表。如果父类有无参构造器,则在子类的构造器中用super关键字调用父类构造器不是必须的,如果没有使用super关键字,系统会自动调用父类的无参构造器。
publicclassTestExtendsV2 {
publicstaticvoidmain(String[]args) {
Shapeshape=newCircle();
// System.out.println(shape.name);
shape.printType();
shape.printName();
}
}
classShape {
publicStringname="shape";
publicShape(){
System.out.println("shape constructor");
}
publicvoidprintType() {
System.out.println("this is shape");
}
publicstaticvoidprintName() {
System.out.println("shape");
}
}
classCircleextendsShape {
publicStringname="circle";
publicCircle() {
System.out.println("circle constructor");
}
publicvoidprintType() {
System.out.println("this is circle");
}
publicstaticvoidprintName() {
System.out.println("circle");
}
}
输出为:
shape constructor
circle constructor
//shape
this is circle
shape
上面代码关键词:多态,继承,隐藏和覆盖。
覆盖只对非静态方法起作用。
隐藏对成员变量和静态方法起作用。
原理:覆盖受RTTI(Runtime type identification)约束的,而隐藏却不受该约束。也就是说只有覆盖方法才会进行动态绑定,而隐藏是不会发生动态绑定的。在Java中,除了static方法和final方法,其他所有的方法都是动态绑定。
0 0
- Java继承
- JAVA-继承
- java 继承
- Java继承
- Java 继承
- JAVA继承
- java继承
- java/继承
- java 继承
- java继承
- java继承
- JAVA-继承
- Java继承
- java 继承
- JAVA 继承
- 【继承】 JAVA
- Java继承
- Java继承
- VMware vShpere5 分布式网络交换机概念图
- jedis操作sentinel,采用连接池方式
- CSDN爬虫(一)——爬虫入门+数据总览
- OnQueryEndSession与OnEndSession函数
- Espresso指南一(Espresso下载、安装、设置、基础、速查表)
- Java 继承
- 802.11协议帧说明
- Lowest Common Ancestor of a Binary Search Tree(二叉树最小公共祖先)
- 微信小程序学习笔记(一)
- Git合并解决冲突
- windowjava环境配置问题
- Java中的hashcode方法的使用
- php实现斐波那契数列的几种方式以及杨辉三角
- JSP项目从普通类中读取资源文件路径解决方案