Java基础复习(五)

1.this关键字

①区分成员变量和局部变量同名
②方法中,方法成员变量写this
③当成员变量和局部变量重名时,且没有this,用就近原则。
④当某个对象调用方法时,this就是表示哪个对象,其地址与对象地址相同
⑤this的内存图

2.继承

①子类自动拥有父类所有可继承的属性和方法
好处:
1)提高了代码的复用性,提高软件开发效率。
2)继承让类与类之间有了关系,提供了多态的前提。
②java中只支持单继承不支持多继承,一个类只能有一个父类。
③多个类可以继承自一个类。
④java支持多层继承,多重继承。
⑤子类父类只是相对概念。
⑥子类的对象调用成员变量,子类自己有使用自己的,子类自己没有,找父类的,就近原则。
⑦当子类出现了同名成员时,要访问父类成员用super来调用父类成员。父类又叫超类,基类。子类又叫派生类。

3.方法重写(override)

①子类中,出现了父类一模一样的方法时,包括返回值,参数列表,变量名,子类重写父类的方法。(覆盖)
②子类重写父类方法的时候,权限要大于等于父类。

4.Java权限修饰符

public > protected > default(不写) > private
无法共存的修饰符
abstract private 私有的没有办法继承
abstract final
abstract static

5.抽象类abstract

①抽象方法没有主体,必须用abstract修饰。
②抽象方法必须用存在于抽象类中,而抽象类中可以没有抽象方法,抽象类也必须用abstract修饰。
③抽象类不能实例化对象,也就是不能new一个对象。
原因:即使有了实例化对象方法没有主体,当调用方法时也是没有办法运行的即抽象方法没有意义。
④抽象类的使用:
1)定义一个类继承抽象类,将抽象类中的所有方法重写。
2)子类必须重写抽象类的方法,否则报错。
3)如果一个类重写了抽象类的部分抽象方法,这个子类还是一个抽象类,还是无法实例化对象,只有重写了全部抽象方法才可以实例化对象。
⑤抽象类的设计思想:
1)作用:继承体系
2)抽象类强制子类重写抽象方法。
⑥抽象类可以有普通方法,也可以不定义抽象方法。
⑦抽象类一定是父类。
⑧不能为了继承而继承,应该满足is - a。

6.接口interface

一切事物皆有功能,即一切事物皆有接口!!
1.接口的定义
①格式:

public interface 接口名 {
抽象方法1
抽象方法2
}

②成员方法都是抽象的,不能定义带有方法体的方法。
格式:

public abstract(不可以修改,只允许public) 返回值类型 方法名(参数列表);

public abstract 可以选择性写,它默认就是public,而且只能是public
③成员变量:
1)必须定义成常量。
2)固定格式:

public static final 数据类型 变量名 = 值;

注意:public static final在接口中可以不写,不过它还是存在。

2.类与接口的关系
①类实现接口。
②定义类实现接口,重写接口中的抽象方法。
格式:

class 类 implements 接口名{
	重写接口中的方法
}

③接口中的抽象方法必须全部重写才能创建对象,如果只重写了一部分方法,该实现类还是一个抽象类。

3.接口的多实现
①多实现没有安全隐患,因为接口中的方法都是抽象的没有主体,依赖实现类重写才能执行,所以解决了继承的局限性。
②类继承一个类的同时可以实现多个接口。

4.接口之间的多继承
①接口与接口之间是继承关系。
②Java支持接口之间的多继承。
eg:c接口继承b,a接口,那么c的实现类要重写abc的抽象方法。

5.接口的优点
①接口的出现扩展了功能。
②接口其实是暴露出来的规划。
③接口降低了耦合性,即设备与设备间出现了解耦。

6.接口与抽象类的区别
相同:
①位于继承的顶端,用于被其他类继承或实现。
②都不能实例化对象。
③抽象类(含有抽象方法)和接口,其子类(实现类)都要重写抽象方法。

异同:
①抽象方法中可以有普通方法,避免子类重复实现,提高了代码的复用性,接口中只能是抽象方法。
②抽象类的继承体系是is-a关系。
③接口的体系是like-a关系。

使用:优先使用接口少用抽象类,除非要有关系才使用抽象类。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注