Java中继承的概念
来源:互联网 发布:replay字体软件 编辑:程序博客网 时间:2024/05/21 22:41
继承的概念:继承指的是一个类从另一个类从获得属性和方法的过程,它们的关系可以看做是父子的关系,一个父类,一个子类。
继承只能是单继承的,就如一个父亲可以有多个孩子,但是一个孩子不能有多个父亲的道理一样。
继承使用extends关键字。
我们首先创建一个People类:
public class People {
String name; //定义姓名
char sex; //定义性别
int age; //定义年龄
People(){
System.out.println(“我是人类”);
}
void show(){
System.out.println(“我的名字是:”+name+”\n我的性别是:”+sex+”\n我的年龄是”+age+”岁”);
}
}
然后我们创建一个Student类来继承people类:
public class Student extends People {
String school; //定义学校名
int score; //定义成绩
Student() {
System.out.println(“我是学生类”);
}
void show(){
System.out.println(“我的名字是:”+name+”\n我的性别是:”+sex+”\n我的年龄是”+age+”岁”);
System.out.println(“我的学校是:”+school+”\n我的成绩是”+score+”分”);
}
}
最后我们创建一个测试类来进行测试:
public class Test {
public static void main(String[] args) {
People peo = new People();
peo.name = “大明”;
peo.age = 43;
peo.sex = ‘男’;
peo.show();
System.out.println();
Student stu = new Student();
stu.name = “小明”;
stu.age = 20;
stu.sex = ‘男’;
stu.school = “清华”;
stu.score = 100;
stu.show();
}
}
输出结果如下:
我是人类
我的名字是:大明
我的性别是:男
我的年龄是43岁
我是人类
我是学生类
我的名字是:小明
我的性别是:男
我的年龄是20岁
我的学校是:清华
我的成绩是100分
在Student类中是没有年龄、性别、姓名这三个成员变量的,它是从People类那继承过来的。同时也有它本身特有的属性,如学校,成绩等。
在实例化Student类的时候,我们看它首先会执行一个输出语句:我是人类。这是因为在实例化Student类的时候会先实例化People,因此会执行People类的构造方法的。
在父类中和子类中都是有show()方法的,但我们执行子类的show()方法的时候是不会执行父类的show方法的。因为在父类和子类中存在同一个方法的时候,子类就会把父类的方法覆盖掉。这并不是说父类的方法就没有了,它只是被隐藏掉了,我们可以用关键字super来调用父类的成员变量和成员方法的。
super表示当前类的父类。
我们在子类中用super就可以得到父类中被隐藏的东西的。
如果我们将Student类中的show()方法传入一个形参的话,变成show(int a);这样就形成了方法的重载,它也继承了父类的show()方法的,重载之前已经有了。
注:构造方法是不能被继承的。
私有的方法和私有的成员变量是不能被继承的。
- Java中继承的概念
- Java继承中概念的混淆
- Java继承的概念
- Java 中包的概念,常量,静态与继承
- C++中虚拟继承的概念
- C++中虚拟继承的概念
- C++ 中 虚拟继承 的概念
- Java子类的继承概念(一)
- Java继承的概念与实现
- Java继承的概念与实现
- Java继承的概念与实现
- java--继承概念
- Java入门教程-4.1Java继承的概念与实现
- 重载、继承的概念
- 继承概念的理解
- 继承的一些概念
- js继承的概念
- 多态、继承的概念
- Android ListView入门知识--各种Adapter配合使用
- Android Studio设置行宽、格式化断行
- leetcode--Generate Parentheses
- 设置AFNetworking的超时时间
- Aerospike-Architecture系列之数据分布
- Java中继承的概念
- Ajax中本地调试js脚本不起作用?
- caffe solver.prototxt文件
- Android下创建一个sqlite数据库
- 使用 CSS3 实现超炫的 Loading(加载)动画效果
- 总结Selenium WebDriver中一些鼠标和键盘事件的使用
- linux下mount/unmount命令
- ubuntu 14.10下搭建web服务器(MySQL+PHP+Apache) 教程
- 总结在javaweb中转发和重定向的路径问题