码迷,mamicode.com
首页 > 编程语言 > 详细

java之继承

时间:2015-08-14 19:44:08      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:java

1、父类私有的成员不能被继承
2、父类的构造函数不能被继承
3、创建子类对象的时候会默认先调用父类的无参的构造函数。

(为什么要调用父类的构造方法?答案:初始化从父类继承下去的属性的!)
注意:调用和继承直接没有关系 


3 创建子类对象的时候会默认先调用父类的无参的构造函数。(为什么要调用父类的构造方法?答案:初始化从父类继承下去的属性的!)

下面例子中,子类从父类继承name的属性,调用父类的构造方法就是为了初始化name属性的

class Person
{
String name;
private int age;

public Person(String name)
 {

this.name=name;

    }

 public Person()
 {
System.out.println("person类的构造方法被调用了");

    }
 public void eat()
 {
 
 System.out.println("在吃饭");

 }


}

class Student extends Person
{
int num;
public Student()
 {
System.out.println("Student类的构造方法被调用了");
    }
public void study()
 {
System.out.println(name+"在学习");
    }
 

}

class Demo1
{
 public static void main(String[] args)
 {
  Student s=new Student();
 }
}
person类的构造方法被调用了
Student类的构造方法被调用了


4.案例分析:

(1)

父类int x=10,子类int x=20;当创建对象 Zi z=new Zi("小头儿子");的时候,z内存地址所对应的内存内有两份数据,x=10和x=20,一份自身的一份从父类继承下来的  如下System.out.println("x2="+super.x);可以打印从父类继承的x

(2)创建子类对象的时候会默认先调用父类的无参的构造函数。这时候从父类继承下来的name属性初始化为空。要想初始化name不为空,就要调用父类有参的构造函数,即 public Fu(String name)
 {
 this.name=name;
 System.out.println("父类有参的构造方法");
 }

这就需要在子类构造函数中加一个 super(ame)



class Fu
{
 int x=10;
 String name;
 public Fu(String name)
 {
 this.name=name;
 System.out.println("父类有参的构造方法");
 }
 public Fu()
 {
   System.out.println("弗雷无参的构造方法");
 }


}
class Zi extends Fu
{
  int x=20;
  public Zi(String name)
 {
  super(name);//zhiding调用父类一个参数的构造函数 ,若没有这句话,就会调用父类无参的构造函数
  System.out.println("子类的构造方法");
  }
  public void print()
 {
  System.out.println("x1="+x);
  System.out.println("x2="+super.x);

 
  }
}
class Demo1
{
 public static void main(String[] args)
 {
  Zi z=new Zi("小头儿子"); //
  ////在对象里面是存在两份x的;z地址所指向的对象的内存内有两份x(一份自身的,一份是从父类继承下来的)!
  System.out.println("name"+z.name);//z.name初始化时null  若想对象一创建就初始化成一个非null的名字,需要调用父类不带参的构造方法(而子类一创建对象就默认调用父类带参的构造方法)
 }
}


java之继承

标签:java

原文地址:http://swordofgold.blog.51cto.com/10617534/1684522

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!