【Java】继承、抽象、接口和包
来源:互联网 发布:空气污染指数的算法 编辑:程序博客网 时间:2024/06/06 08:04
一、继承
在面向对象编程中,类继承包括:单继承和多继承。
单继承表示子类只能有一个父类,但是一个父类可以派生出多个子类,也就是说子类和父类是多对一的关系;而多继承则是多对多的关系。
java里只支持单继承。
类继承通过关键字extends来实现。
语法为:
[修饰符] class 子类 extends 父类名{
//子类属性和方法定义
}java里修饰符分为几种:
1.访问修饰符:
a.public;公有的(类似公共厕所)
b.protected;包内可见(类似家里的厕所)
c.private;私有(老爸主卧专用厕所)
d.默认访问修饰符(default)包内可见2.abstract:用来修饰类和方法,不能被实例化,而且必须要实现;
3.final:用来修饰类、方法、属性。修饰类的时候,表明是最终类,不得被继承,没有子类;修饰方法的时候,表明是方法不可被覆盖;修饰字段(属性)的时候,表明属性的值一旦被定义不得被修改;
4.static:用来修饰内部类、方法、属性。修饰内部类的时候表明该类属于某外部类而不属于类的某个实例;修饰方法的时候表明属于某个类而不是类的实例;同样的,修饰字段的时候,表明属于某个类而不是类的实例。因此,static修饰的,不能被实例化,不能new,不能用this;
子类继承父类所有的非私有成员(方法和属性)。
那么问题来了,如果当子类定义了和父类相同名字的方法和属性,那么当new出一个子类对象的时候,运行的同名方法和属性应该是子类的还是父类的呢?
1.域的隐藏(同名属性)
这里的域指的就是属性、字段。
当子类和父类定义了同名不同类型属性,当new一个子类对象时,应执行的是子类属性,而隐藏了父类字段,这就是域的隐藏。
2.方法的覆盖(同名方法)
子类和父类定义了相同的方法(方法名相同、参数个数,顺序,类型都相同、返回类型相同),这叫做覆盖。
有了这两个特点,子类可以运行自己的属性方法而不是受父类牵制。
可是当子类想用父类的属性和方法又要如何操作呢?
这里就引入了一个关键字super。
3.Super关键字
super有两个用途:
1.用于访问直接父类被子类隐藏的域和被覆盖的方法;
2.用于调用直接父类的构造方法,并对其类成员进行初始化。
(一般默认调用的是父类无参数的构造方法,对于带参的构造方法就要用super(具体参数值))
还要注意的一点是,this和super不能同时使用,因为两者都要放在第一行。
二、抽象
(1)抽象方法只能在抽象类中定义;
(2)不能用abstract来修饰构造方法,因为构造方法是不能被继承的。
(3)抽象方法不能实例化对象。
————————————————————————————
但是,如果要使一个子类同时拥有多个类的特征的话怎么办呢?
Java里用接口解决了这个问题。
三、接口
一个类不是通过继承来实现接口的,而是通过实现接口里的抽象方法。
其实我觉得接口这个名字非常形象,就像充电的插座插口,你可以用它给手机充电,可以用来给吹风机吹头发,可以给电饭锅煮饭等等,每个具体的电器(类)的实现方式都不同,也实现了不同功能,(这也是所谓的多态),在接口里定义了他们相同的抽象方法(用电),然后让他们各自以不同的功能来实现这个接口。
定义接口的关键字是interface,类实现接口的关键字是implements
- 【Java】继承、抽象、接口和包
- java继承、接口和抽象类
- java--继承,抽象,接口
- Java 继承、抽象、接口
- java抽象类和接口和继承之间关系
- java抽象类和接口和继承之间关系
- java 继承和多态 抽象类和接口
- java抽象类和接口和继承之间关系
- Java抽象类和接口和继承之间关系
- Java抽象类和接口和继承之间关系
- JAVA继承 抽象类 接口
- Java继承、抽象、接口、多态
- Java接口、抽象类、继承
- Java基础--继承、抽象、接口
- java基础--继承,抽象,接口
- Java基础继承、抽象、接口
- Java基础---继承、抽象、接口
- 6、Java继承、抽象、接口
- 以文开头
- 使用记事本敲出的Java坦克大战案例
- C++ 动态对象数组的知识总结
- 《数字技术》连载15: 第2章 数字器件 第10节 D 触发器
- siebel基础配置
- 【Java】继承、抽象、接口和包
- Leetcode:48. Rotate Image(数组选择90度)
- HorizontalScrollView的基础实现
- factory方式定义服务
- jackson fasterxml 的api地址
- 数据库客户端DataGrip使用中遇到的问题
- jQuery点选特定区域处理及自定义属性的判断和移除
- 51Nod 1649 齐头并进 最短路
- 滴滴打车司机,乘客算法