继承:public class Student extends Person
子 扩展继承 父
继承的出现提高了代码的复用性,它的出现让类与类之间产生了关系,提供了多态的前提。不要仅为了获取其他类中的某个功能而去继承
继承的特点:单一继承,多层继承
方法的重写:定义一个与父亲一样的成员就是覆盖,在子类可根据需要对来自父类的方法重写。
重写方法必须和被重写方法具有相同的方法名,参数列表。重写的方法的返回值类型不能大于被重写的方法的返回值类型,不能小于被重写方法的访问权限。
子类不能重写父类中声明为private权限的方法,子类方法抛出的异常不能大于父类被重写方法的异常
关键字:super,来调用父类定义的属性,调用父类中定义的成员方法,可用于在子类构造器中调用父亲的构造器
语法:super.(只能在子类中出现)
子类不能继承父亲的构造方法
Java权限修饰符public,protected,private置于类的成员定义前,用来限定对象对该类对象成员的访问权限,对于class的权限修饰只可以用public和default。
多态性:方法的重载和重写,对象的多态性(可以直接应用在抽象类的接口上),数据类型的自动转换。
Java引用变量有两个类型:编译时类型和运行时类型
继承,方法重写父类的对象指向子类实例
父类数据类型不能强制转换成子类
兄弟类之间数据类型不能转换
instanceof操作符 x instanceof A检验x是否为类A的对象,返回值为boolean型
对象类型转换(casting)
自动类型转换:小的转换成大的 强制类型转换:大的转换成小的
Object类的使用:Object类是所有Java类的根父类
equals比较方法,重写 toString也要重写
==既可以比较类型也可以比较引用类型(内存地址)
toString 方法其返回值是String类型
final关键字:用于修饰变量,方法和类
final修饰变量时,即常量,修饰方法时为最终方法,修饰类的时候为最终类(最终类无子类)
内部类:在一个类的类体之间再定义一个类,该情况下外面的类称为“外部类”,里面的类称为“内部类”
静态内部类,成员内部类,局部内部类,匿名内部类
语法:外部类.内部类
在方法定义中内部类称为局部内部类,不能使用public或private修饰符进行声明,可以直接访问局部外来类,也可以访问局部变量,但必须由final声明
使用static修饰一个内部类,静态内部类
匿名内部类就是没有名字的内部类,只适合使用一次,不能有构造方法,不能有静态,一定跟在new后面,创建其实现的接口或父类的对象
单例模式实现方式:设计模式
构造方法私有,用一个静态变量引用实例,提供一个公有的静态变量获取实例
抽象类是对问题领域进行分析后得出的抽象的概念,是对一批看上去不同,但是本质上相同的具体概念的抽象
抽象类和抽象方法必须使用“abstract”关键字来修饰
访问符 abstract class类名{
访问符 abstract 返回类型 方法名([参数列表]);
}
abstract关键字放在class前,指明该类是抽象类,不能用来修饰成员变量和构造方法。
接口定义规范,使用抽象方法(无方法体)
访问符 interface 接口名 [extends 父接口1,父接口2、、、、]{
接口体 (可声明变量)
}
访问符一定是public,很少使用缺省访问符,可以有多个父接口,只能有一个父类,在接口体里可以包含静态变量,抽象方法,内部类,内部接口和枚举
实现接口
访问符 class 类名 implements 接口1[接口2·····]{
}
implements关键字用于实现接口,接口之间可以用逗号间隔
接口没有对象,不能直接实例化
接口的继承,extends关键字
一个源Java文件可以有多个接口和类,但最多只能有一个类或接口是public
接口和抽象类,不能被实例化,需要被其他类实现或继承
第4章 面向对象(下)
最新推荐文章于 2022-11-04 17:22:55 发布