首页 > 代码库 > 【四】面向对象

【四】面向对象

//不解释了直接上代码吧

//-------------------------------------------------------------------------------------

class Person{

  String name;
  int age;
  Person(){
    System.out.println("Person的无参数构造函数");
  }

  Person(String name ,int age){
    this.name = name;
    this.age = age;
    System.out.println("Person的有参数构造函数");
  }

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

  void introduce(){
    System.out.println("my name is " + name +",my age is " + age);
  }

}

//----------------------------------------------------------------------------

class Student extends Person{
//在子类的构造函数当中,必须调用父类的构造函数
  int grade;
  String address;

  Student(){
    super();//super一定要在第一行
    System.out.println("student的无参数的构造函数");
  }
  Student (int grade){
    this();
  }

  Student(String name,int age,int grade){
    //this.name = name;
    //this.age = age;
    super(name,age); //super和this一样,一定要在构造函数第一行
    this.grade = grade;
  }

  void study(){
    System.out.println("学习");
  }
  //复写(override)也被称为覆盖或者重写
  //1.在具有父子关系的两个类中
  //2.父类和子类各有一个函数,这两个函数的定义(返回值类型、函数名和参数列表)完全相同
  void introduce(){

    //System.out.println("我的姓名是" + name + "我的年龄是" + age);
    super.introduce();//代替了上面的重复代码
    System.out.println("我的家在" + address);
  }
}

//----------------------------------------------------------------------------------------------------------

 

凡是见到new就在堆内存里生成一个对象

Student stu = new Student();

 

匿名对象就是个一次性的对象如 new Student().introduce(); 每次new的匿名对象是不同的,一次性的。

【四】面向对象