首页 > 代码库 > 【四】面向对象
【四】面向对象
//不解释了直接上代码吧
//-------------------------------------------------------------------------------------
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的匿名对象是不同的,一次性的。
【四】面向对象