黑马程序员技术交流社区

标题: 子类怎么调用父类构造函数,并给予子类段赋值 [打印本页]

作者: dbqwaii    时间: 2012-12-22 13:14
标题: 子类怎么调用父类构造函数,并给予子类段赋值
如题   别讲的太复杂  复杂了 看不懂
作者: 董将    时间: 2012-12-22 13:23
public class Student {
        private String name;
        private int age;
        public Student(){}
        public Student(String name,int age){
                this.name=name;
                this.age=age;
        }
        public void setName(String name){
                this.name=name;
        }
        public void setAge(int age){
                this.age=age;
        }
        public String getName(){
                return name;
        }
        public int getAge(){
                return age;
        }
}
在这个里面先写一个无参构造器,然后再写一个有参构造器
写这个类是要给子类访问用的,所以要写一个set get 方法给子类一个接入口
在写子类的一个测试函数
class MainApp {
        public static void main(String[] args) {
                Student stu = new Student();
                String s = stu.getString();
                System.out.println(s);
              //在这里给创建的对象赋值的时候首先走的就是父类的构造器,进行初始化操作,然后子类再将值赋给这个新创建的子类
                Student stu1 = new Student("zhaoLiu", 33);
                Student stu2 = new Student(,"tianQi", 33);
                Student stu3 = new Student( "jianBa", 33);
        }
}
不知道这么解释你能不能明白
作者: dbqwaii    时间: 2012-12-22 13:48
董将 发表于 2012-12-22 13:23
public class Student {
        private String name;
        private int age;

不好意思  理解不了
作者: 杭州-杨    时间: 2012-12-22 15:02
public class Student {
        private String name;
        private int age;
这是一个公共的类 Student 里面定义了一个私有的name变量和age变量,但是这2个变量是无法被外部调用的,所以2楼写了个
public void setName(String name){
                this.name=name;
        }
public是公共的,所以外部调用这个SETNAME函数来给前面定义的私有的那个NAME赋值
作者: dqzg12300    时间: 2012-12-23 12:03
用base()就可以调用父类的构造函数
    public class Person
    {
        string name;
        public string Name { get; set; }
        int age;
        public int Age { get; set; }
        public Person(string Name,int Age)
        {
            this.Name=Name;
            this.Age=Age;
        }
    }
    public class Student:Person
    {
        public Student(string name,int age):base(name,age)
        {
            
        }
    }
使用的时候先到子类的构造函数,然后发现有base,就会转到父类的构造函数去




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2