Java 学习进入到面向对象思想之后,自我感觉有些抽象的概念实在难以理解。重复看了几遍书本内容的描述才理解了"类的继承和成员变量的继承与隐藏"。
子类与父类的关系
1.共享性:子类可以共享父类中的公共属性和方法。
2.差异性: 即子类和父类一定存在某些差异,否则就是同一个类了。
3.层次性: 由于java只支持单继承,每个类都处于继承中的某一个层面。
子类中的成员变量与父类中成员变量关系
1.当子类中定义了与父类中相同的成员变量时,父类中的成员变量只是被**"隐藏"**了,并没有被覆盖。
2.通过创建子类的对象去调用父类中的方法和变量时,系统首先会调用父类中的方法,再调用子类中的方法。
编写了一个实例加深自己对于类的继承和成员变量的继承理解!
如下:
先创建一个父类Text11和两个构造方法。
class Text111 {
String person;
String name;
int age;
public Text111 (){
this.person="大学生";
this.name="陈涛";
this.age=20;
}
public Text111(String person,String name,int age){
this.person=person;
this.name=name;
this.age=age;
}
public void voidd() {
System.out.println("person:"+this.person+"\n"+"name:"+this.name+"\n"+"age:"+this.age);
}
}
创建子类child 继承父类Text11 中的成员变量,再在子类中重声明Person 这个变量。
class child extends Text111{
String person;
child(){
this.person="帅哥";
}
child(String person,String name,int age){
this.person=person;
this.name=name;
this.age=age;
}
public void voidd1() {
System.out.println("person:"+this.person+"\n"+"name:"+this.name+"\n"+"age:"+this.age);
}}
public class Text11{
public static void main(String[] args) {
// TODO Auto-generated method stub
child a=new child("学生","涛",13);//调用有参构造方法复制
a.voidd();
a.voidd1();
child b=new child();//调用无参构造构造方法
b.voidd();
b.voidd1();
}}
程序的输出结果:
"理解了这个例子后对于成员变量和类的继承将会透彻的掌握"