JAVA基础之路——关于继承关于继承中的一些概念

关于继承中的一些概念

继承的概念

继承的概念

引用书中例子:
比如你在某个公司中工作,有经理和普通雇员两种不同的岗位,当然,薪资也不同,你们都领薪水,只不过普通雇员在完成本职工作之后只是领取他的基本工资,而经理在完成了预期的工作之后 还能得到奖金,这种情况就要用到继承(extends)。
用了继承之后,可以提高代码的复用性,只需要让一个类与另一个类产生关系就可以了。而这个关系就叫做继承。

什么时候定义继承呢?

必须保证类与类之间有所属(is a)关系; x是y中的一种。

继承在代码中的体现

重点在于成员的体现:
下面用Employee(普通雇员)类来定义Manager(经理)类,关键字extends表示继承;

这里写图片描述
可以看到,Employee为父类,Manager类继承了父类,成为子类。

覆盖(重写)

如果从父类具备的功能内容需要子类特殊定义时,使用重写。
重写时的写法上,子类和父类必须一模一样:函数的返回值类型 函数名 参数列表都要一样。

抽象类

在描述事物时,没有足够的信息描述一个事物,这时该事物就是抽象事物。
特点
1,抽象类和抽象方法都需要被abstract修饰。
抽象方法一定要定义在抽象类中。
2,抽象类不可以创建实例,原因:调用抽象方法没有意义。
3,只有覆盖了抽象类中所有的抽象方法后,其子类才可以实例化。
否则该子类还是一个抽象类。
细节问题
1,抽象类一定是个父类?
是的,因为不断抽取而来的。

2,抽象类是否有构造函数?
有,虽然不能给自己的对象初始化,但是可以给自己的子类对象初始化。
抽象类和一般类的异同点:
相同:
1,它们都是用来描述事物的。
2,它们之中都可以定义属性和行为。
不同:
1,一般类可以具体的描述事物。
抽象类描述事物的信息不具体
2,抽象类中可以多定义一个成员:抽象函数。
3,一般类可以创建对象,而抽象类不能创建对象。

3,抽象类中是否可以不定义抽象方法。
是可以的,那这个抽象类的存在到底有什么意义呢?仅仅是不让该类创建对象。

4,抽象关键字abstract不可以和哪些关键字共存?
1,final:
2,private:
3,static:
注意:定义了抽象函数的类也必须被abstract关键字修饰,被abstract关键字修饰的类是抽象类。

以上所学为个人总结。难免不严谨,见谅!

猜你喜欢

转载自blog.csdn.net/weixin_42825755/article/details/81433705
今日推荐