Java中继承的概念

继承的概念:继承指的是一个类从另一个类从获得属性和方法的过程,它们的关系可以看做是父子的关系,一个父类,一个子类。
继承只能是单继承的,就如一个父亲可以有多个孩子,但是一个孩子不能有多个父亲的道理一样。
继承使用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()方法的,重载之前已经有了。
注:构造方法是不能被继承的。
私有的方法和私有的成员变量是不能被继承的。

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页