如何理解类与对象
对象就是每一个具体的个体,而类是具有相同的性质抽象概念。
比如我们每一个人就是对象,比如我和我的同学们,每一个人都不一样,非常的具体且独特。但是我们都有共同的特征,比如我们都是大学生。那么大学生就是一个类,它指代具有共同属性一些对象的集合。
代码格式:
//定义类
public class 类名{
//属性
public(这是访问限定符,之后会解释) 属性类型 属性名;
……
//方法
public 属性类型 方法名(参数类型 参数名,……);
……
}
//定义对象
类名 对象名 =new 类名();
如何理解继承
继承其实可以理解为类的具体化,或者说细分,比如大学生是一个类,男大学生也是一个类,但男大学生也是大学生,凡是大学生具有的特征,男大学生都有,但男大学生具有的特征,大学生就不一定有。这样,我们就可以说男大学生类继承了大学生类,是大学生类的子类,大学生类就称之为男大学生类的父类。
代码格式:
//定义子类
public class 子类名 extends 父类名{
//不同与父类的属性
……
//不同与父类的方法(或者重写父类的方法)
……
}
方法重写
方法重写是指当父类中的方法不能满足子类的需求,但是功能上又是重合,为了不造成功能相同的方法太多导致混淆,选择将这类方法重写使之能够符合子类的需求。
转型
有自动转型和强制转型。
自动转型是指由子类转换到父类。
比如当一个方法的参数类型是大学生类型,但是我们在实际过程中用到的参数更加具体,比如有计算机的学生类型、机械的学生类型等等,显然,他们的类型不符合方法的参数类型,但是我们仍然可以在方法的参数中使用这些类型的对象,因为这些都是继承了大学生类型,这大大提高了代码的重用率。而且,此时我们调用这些对象的方法的时候,如果这些方法被重写了,那么调用的将是重写后的方法,这又保留了他们作为不同的类的独特性。
强制转型是指子类自动转型为父类之后,由于又对子类自身独特的方法或属性有需求,就可以将其强制转换回子类,然后使用其独特的属性和方法。
代码格式:
//自动转换
student a=new male_student();
//强制转换
male_student male_a = (male_student) a;