Java基础之继承

来源:互联网 发布:淘宝会员等级怎么看 编辑:程序博客网 时间:2024/05/16 19:30

extends是继承的关键字。

之类继承了父类的属性和行为,同时也具备自己特有的属性,子类可以直接访问父类中的非私有的属性和行为。子类无法继承父类中私有的内容

如何运用继承呢?

最主要的是看:is a   比如,猫是动物,那么猫继承动物类;狗是动物,那么狗继承动物类;

特点:Java只支持单继承,不支持多继承,单可以支持多层继承,比如C继承B,B继承A。 一个类只能有一个父类,不可以有多个父类。一个父类可以有多个子类。


super:

在前面学习到了this。

this表示所在函数所属对象的引用。 当成员变量和局部变量重名,可以用关键字this来区分,this就是所在本类函数中的调用。而且只能定义在构造函数的第一行。

在继承中引申出来了super,super代表父类的内存空间的标识,super的用法与this基本相同,当本类的成员和局部变量同名用this区分,但 当子父类中的成员变量同名用super区分父类。super语句必须要定义在子类构造函数的第一行!对父类进行初始化。

子类的实例化过程
因为构造函数的第一行都有一条默认的语句super(),所以子类中所有的构造函数默认都会访问父类中空参数的构造函数。

 final:
 final表示最终的意思,不可更改,所以final修饰的类不可以被继承,final修饰的方法不可以被覆盖。

抽象类
抽象类和抽象方法必须用abstract关键字来修饰。抽象类通过其子类实例化。
抽象类的成员特点:
成员变量:既可以是变量,也可以是常量。
构造方法:有。用于子类访问父类数据的初始化。
成员方法:既可以是抽象的,也可以是非抽象的。
抽象类的成员方法特性:
抽象方法 强制要求子类做的事情。
非抽象方法 子类继承的事情,提高代码复用性。

接口
关键字:interface 
接口的特点:
1,接口用关键字interface表示,格式为interface 接口名 {}
2,类实现接口用implements表示,格式为class 类名 implements 接口名 {}
3,接口不能实例化,需要按照多态的方式来实例化。
4,接口的子类最好是具体类,同时要重写接口中的所有抽象方法。

抽象类和接口的区别:
成员区别
抽象类:成员变量:可以变量,也可以常量;构造方法:有;成员方法:可以抽象,也可以非抽象
接口:成员变量:只可以常量;成员方法:只可以抽象
关系区别
类与类:继承,单继承;
类与接口:实现,单实现,多实现
接口与接口:继承,单继承,多继承
抽象类 被继承体现的是:”is a”的关系。抽象
类中定义的是该继承体系的共性功能。
接口 被实现体现的是:”like a”的关系。接口中定义的是该继承体系的扩展功能。

多态
 举个简单的例子:动物中猫,狗。
    猫这个对象对应的类型是猫类型:猫 x = new 猫();
    同时猫也是动物中的一种,也可以把猫称为动物:动物  y = new 猫();
 动物是猫和狗具体事物中抽取出来的父类型。父类型引用指向了子类对象。这样就称为多态
特点:
1,同一个对象在不同时刻体现出来的不同状态。
2,多态的前提:有继承或者实现关系。有方法重写。有父类或者父接口引用指向子类对象。
3,多态的分类:
具体类多态:class Fu {}
class Zi extends Fu {}
Fu f = new Zi();
抽象类多态:
abstract class Fu {}
class Zi extends Fu {}
Fu f = new Zi();
接口多态:
interface Fu {}
class Zi implements Fu {}
Fu f = new Zi();
4,多态中的成员访问特点
成员变量
编译看左边,运行看左边
构造方法
子类的构造都会默认访问父类构造
成员方法
编译看左边,运行看右边
静态方法
编译看左边,运行看左边
5,多态的好处:
提高代码的维护性(继承体现)
提高代码的扩展性(多态体现)
6,多态的弊端:
父不能使用子的特有功能。
现象:子可以当作父使用,父不能当作子使用。
7,多态中的转型
向上转型:从子到父
向下转型:从父到子










0 0
原创粉丝点击