面向对象高级

2019-02-28  本文已影响0人  想吃热干面了

类的继承:一个类(子类)通过extends继承一个已有的类(父类),子类继承父类的所有属性还有方法,同时也可以增加自己的属性和方法。

单继承:每个类只能继承一个类,一个父类可以由多个子类

好处:简化代码 易于维护

实例化过程:子类先调用父类构造器,再调用子类构造器。即先实例化父类,再实例化子类。

super():调用父类的构造器,只能在子类构造器中且必须首行。如没有,会默认加上。

this():调用本类的构造器,只能写在构造器的第一行

super()和this()不能同时出现

权限访问修饰符

方法的覆盖(重写):对父类中的方法进行改造,要有继承关系

规则:

1.相同的方法名
2.相同的参数
3.相同的返回值类型
4.重写的访问权限不小于父类被重写方法的访问权限
5.只修改代码块内容

引用数据类型的转换

上溯造型:向上转换,子类转换为父类,自动转换

要有继承或实现关系,失去子类自己的属性和行为,只能使用父类中的.

下溯造型:向下转型,强制转换 将父类对象显示的转换成子类类型

曾经向上转换过的对象,才能再向下转换。对象不允许不经过上溯造型而直接下溯造型


image.png

多态:类的多种实现,不同对象对同一行为做出的不同反应

条件:

static关键字:可以修饰属性 方法 代码块 只能修饰l类成员

静态变量:所有对象共享,类变量,类存在static变量就存在
访问方式:类名.属性 对象名.属性(需实例化)

静态方法:不需实例化,也可直接访问。类方法。
访问方式:类名.方法 对象名.方法(需实例化)
作用:简化方法的使用 便于访问静态属性
注意:

静态代码块:

final关键字

可修饰的元素:

静态常量:被static和final修饰的成员变量,必须字母大写,单词间用下划线

抽象类:abstract关键字(有抽象方法和非抽象方法)

抽象方法:abstract关键字修饰,只有声明,没有实现。
规则:

什么情况?类必须被声明为抽象类:
1.有抽象方法
2.继承抽象类,而没有全部重写父类的抽象方法
3.实现接口,而没有全部重写其中的抽象方法

接口(interface)

接口与抽象类的区别

接口:

1.只能定义常量,只能有抽象方法、用interface修饰
2.一个类可以实现多个接口,接口和接口之间可以多继承
3.接口中的方法必须被重写
4.接口更灵活,松耦合

抽象类:

1.可以定义常量和全局变量,可以非抽象方法,abstract关键字修饰
2.一个类只能继承一个抽象类

内部类

• 内部类特性
 内部类就是定义在另一个类内部的类。
 内部类对于同一包中的其它类来说,内部类能够隐藏起来。
• 注意
 内部类可以访问其外部类中所有的属性和方法
 无需创建外部类的对象,即可从内部类访问外部类的变量和方法。
 必须创建内部类的对象,否则无法从外部类访问内部类的变量和
方法。
 如果内部类中有和外部类同名的变量或方法,则内部类的变量和
方法将获得比外部类的变量和方法更高的优先级。
 不能定义static变量

一个类只会被这个类所调用,其他类不会使用他,你可以把它定义成一内部类,这样可以隐藏实现细节,避免错误的调用。

• 内部类特性
 普通类的访问权限修饰符
 default
 public
 内部类的访问权限修饰符
 default
 public
 protected
 private


image.png image.png image.png

在方法定义的内部类中只能访问方法中的final类型的局部变量

上一篇 下一篇

猜你喜欢

热点阅读