java-封装&继承

2.1 封装

封装可以隐藏类的实现细节,让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对成员变量的不合理访问。通过封装,我们还可以在访问数据时进行检查,从而有利于保证对象信息的完整性。另外,合理封装的程序便于修改,可以提高代码的可维护性。
封装的实现依赖于访问修饰符,Java提供了3种访问修饰符,分别是private、protected、public。这三种访问修饰符以及不加修饰符的情况,一共形成了4种访问级别:private、default、protected、public。访问修饰符与类中成员的访问级别如下表所示:
常见的封装方式是,将一个类中的成员变量私有化,即使用private修饰成员变量,从而避免它被直接访问到。然后为该成员变量增加赋值(set)方法和取值(get)方法,并使用public修饰这两个方法,使得外界可以通过这两个访问来访问该成员变量。在这两个方法中,我们可以增加任意的数据处理逻辑。
	
class Foo {
private int count;
public void setCount(int count) {
this.count = count;
}
public int getCount() {
return count;
}
}

2.2 继承

Java采用extends关键字实现继承,实现继承的类叫子类,被继承的类叫父类。任何类都只能有一个直接的父类,和无数个间接的父类,而多个类可以继承于同一个父类。若一个类没有显式地指定父类,则这个类默认继承于java.lang.Object类。
重写
子类继承父类后,还可以从写父类中的方法。所谓重写,是指在子类中,定义与父类同名的方法,用来覆盖父类中这个方法的逻辑。在重写时,要遵守如下规范:
  1. 子类方法的名称、参数列表与父类相同。
  2. 子类方法的返回类型与父类相同或更小。
  3. 子类方法声明的异常与父类相同或更小。
  4. 子类方法的访问权限与父类相同或更大。
this关键字
this关键字用于指代当前对象,它包含如下作用:调用当前对象的构造方法、调用当前对象的成员变量、调用当前对象的成员方法。在成员变量和形参的名称产生冲突时,可以通过this来区分二者:
	
class Foo {
private int count;
public Foo(int count) {
this.count = count;
}
public void setCount(int count) {
this.count = count;
}
public int getCount() {
return count;
}
}
super关键字
super关键字包含如下作用:调用父类的成员变量、调用父类的成员方法、调用父类的构造方法。注意,super关键字也是指代当前对象,但用于调用该对象在父类中的成员。通过super调用构造方法时,并不会创建一个新对象。父类构造方***在子类构造方法之前调用,并且总会被调用一次。
	
class Base {
void method1() {}
}
class Sub extends Base {
void method1() {}
void method2() { super.method1(); }
}
#学习路径##Java#
全部评论

相关推荐

B站 运营岗 普通Offer是12-15k*15-18,SP的Offer月薪16-17k*15,SSP的offer月薪是20k*15,综合年总包区间在18-30W。
点赞 评论 收藏
转发
点赞 3 评论
分享
牛客网
牛客企业服务