类的概念在java中十分重要,在我看来,类就是拥有相同特点和行为的元素的集合。比如说学生就是一个类,而每一个类都有相应的对象,比如学生XXX就是学生类的对象。每一个学生的名字都是学生类的属性,而学习就是学生类的方法。继承就是一个类获得了另一个类的属性和方法,这里获得了属性和方法的类称为子类,被继承的称为父类。Java中使用extends关键字进行类的继承。格式如下:
public class 类名(子类)extends 类名(父类){
}
在java中类是单继承,一个类只能继一个类,但是继承关系是可以传递的。我认为使用继承可以减少许多不必要的代码,也提升了程序的扩展性。
在类中每一个属性和方法前都可以定义访问修饰符,不同的访问修饰符也会让数据在不同的情况下能够使用或不可使用。
访问修饰符 同类中 不同类但同包中 不同包中 具有继承关系的子类中
private 可使用 不可使用 不可使用 不可使用
public 可使用 可使用 可使用 可使用
protected 可使用 可使用 不可使用 可使用
默认的 可使用 可使用 不可使用 不可使用
在继承了父类之后,如果重新子类根据具体的情况,重写了父类的方法,这时就称为方法重写。但是子类在重写父类方法时要注意子类方法的访问修饰符只能大于或者等于父类方法的访问修饰符,并且子类方法的返回值类型,方法名,参数都必须要和父类的完全一致。加private和finall修饰符的方法不能重写。子类在继承父类时,不会继承父类的构造方法,但是在实例化子类的对象时,会调用到父类的构造方法。
在实例化对象的时候,如果实例化子类的对象,还会涉及到自动转型。自动转型的格式为:
父类 对象名=new 子类();
当使用了这种格式时,当对象调用方法时会先从父类中寻找,如果父类中有这一方法,就会继续在子类中寻找是否有重写这一方法,如果有就使用子类重写的方法,如果没有就使用父类的方法。
一般每一个类都有默认的无参数构造方法。当子类构造方法被重新定义时,会默认调用父类的构造方法,所以如果父类的构造方法重新定义了,一定要在子类的构造方法中调用,使用super关键字。调用构造方法一定要写在第一句,不然会报错。一般每一个类都有默认的无参数构造方法。 重新定义构造方法的格式为:
public 类名(参数类型 参数名,,){
方法体...
}
创建该类对象格式为:
类名 对象名 = new 构造方法;
当未重写构造方法时为
类名 对象名 = new 类名();
重写后需加入相应参数。