美文网首页
Java(第三周)

Java(第三周)

作者: mwj610 | 来源:发表于2019-03-23 19:30 被阅读0次

一、继承

格式:
class 子类 extends 父类{ }
继承的好处:
1.继承的出现提高了代码的复用性,提高软件开发效率。
2.继承的出现让类与类之间产生了关系,提供了多态的前提。


当子父类中出现了同名成员变量时,在子类若要访问父类中的成员变量,必须使用关键字super来完成。
在子类中,访问父类中的成员变量格式:
super.父类中的成员变量


方法的重写Override
子类中出现了和父类一样的方法时(函数的返回值类型,函数名,参数列表),子类重写父类的方法。

image.png
image.png
image.png

=================================================

二、抽象类:

抽象方法的定义格式:
public abstract 返回值类型 方法名(参数);
抽象类定义格式:
abstract class 类名{
}


抽象类的特点:
1.抽象的方法必须存在与抽象的类中,类也必须用abstract修饰
2.抽象类不能实例化对象,不能new
3.只有只有覆盖了抽象类中所有的抽象方法之后,其子类才可以创建对象。否则该子类还是一个抽象类。

不能创建对象的原因:抽象方法没有主体,不能运行。
重写父类的抽象方法;去掉abstract修饰符,加上方法主体。


image.png

================================================

三、接口

概念:
接口是功能的集合,同样可看做是一种数据类型。
接口只描述所应该具备的方法,并没有具体实现,是比抽象类更为抽象的’类”。具体的实现由接口的实现类湘当于接口的子类睐完成。这样将功能的定义与实现分离,优化了程序设计。
请记住:一切事物均有功能,即一切事物均有接口。


定义:使用interface关键字
格式:public interface 接口名{
抽象方法1;
抽象方法2;
抽象方法3;
}
*接口中的方法均为公共访问的抽象方法
*接口中无法定义普通的成员变量


实现接口:
class 类 implements 接口{
重写接口中的抽象方法
}


接口中成员的特点
1.成员变量的特点,没有变量 都是常量
固定定义格式:public static final 数据类型 变量名 = 值
public 权限
static 可以被类名直接.调用
final 最终,固定住变量的值
常量被静态修饰,可以被类名直接调用,被接口的名字直接调用。
public static final是修饰符,在接口的定义中可以省略不写。
2.接口中的成员方法特点:
public abstract 返回值类型 方法名(参数列表)
修饰符 public abstract 可以不写,选择性书写
3.实现类,实现接口,必须重写接口全部方法,才可以创建实现类对象。
实现类,重写了一部分抽象方法,还是一个抽象类


接口可以多继承


接口的好处:
1.接口的出现扩展了功能。
2.接口其实就是暴露出来的规则。
3.接口的出现降低了耦合性,即设备与设备直接实现了解耦。


接口和抽象类的相同点:
都位于继承的顶端,用于被其他类实现或继承;
都不能直接实例化对象;
都包含抽象方法,其子类都必须覆写这些抽象方法;
区别:
抽象类为部分方法提供实现,避免子类实现这些方法,提高代码重用性;接口只能包含抽象方法;
一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了java的单继承)
=================================================

四、多态

多态的概述:
最终多态体现为父类引用变量可以指向子类对象。
多态的前提是必须有子父类关系或者类实现接口关系,否则无法完成多态。
在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。


多态的定义与使用格式:
格式:就是父类的引用变量指向子类对象
父类类型 变量名 = new 子类类型();
变量名.方法名();
多态调用公式:
父类类型或者是接口类型 变量 = new 子类对象();


多态中成员特点:
成员变量:
编译的时候,参考父类中有没有这个变量,有变量编译成功,没有变量编译失败。
运行的时候,运行的是父类中的变量值。
成员方法:
编译的时候,参考父类中有没有这个变量,有变量编译成功, 内衣变量编译失败。
运行的时候,运行的是子类的重写方法。
** 编译看父类,运行看子类**


多态-转型
向上转型:当有子类对象赋值给一个父类引用时,便是向上转型,多态本身就是向上转型的过程。(将取值范围小的,自动提升为取值范围大的)
使用格式:
父类类型 变量名 = new 子类类型();
如Person p = new Student();

向下转型: 一个已经向上转型的子类对象可以使用强制类型的转化格式,将父类引用转为子类引用,这个过程是向下转型。如果是直接创建父类对象,是无法向下转型的。
使用格式:子类类型 变量名 = (子类类型) 父类类型的变量;
如:Student stu = (Student)p;


instanceof关键字

判断某个对象是否属于某种数据类型
格式:boolean b = 对象 instanceof 数据类型;

相关文章

  • 2019-08-17

    第三周 Java API 2019.8.12 学习多看源码 System System.curremtTimeMi...

  • 这几道Java集合框架面试题在面试中几乎必问

    本文是“最最最常见Java面试题总结”系列第三周的文章。主要内容:Arraylist 与 LinkedList 异...

  • Java(第三周)

    一、继承 格式:class 子类 extends 父类{ }继承的好处:1.继承的出现提高了代码的复用性,提高软件...

  • effective java 第三周

    第6章 枚举和注解 第30条:用 enum 代替 int 常量 在没有 enum 之前表示枚举类型的常用模式时声...

  • Java第三周总结

    方法 重载:同一个类有同名的方法,只要他们的参数列表不一样就可以共存-overload 重写:子类在继承父类过程中...

  • JAVA培训总结(第三周)

    这一周,我们接触了面向对象。 类的继承:一个子类只能有一个父类,子类可以对父类的方法进行重写(子类把父类的方法...

  • Java学习第三周总结

    前三周总结 一、概述 1.特点 2.术语 3.执行方式 4.程序结构 5.IDE 二、核心语言 1.关键字--有特...

  • Java学习第三周总结

    面向对象的四大支柱: 抽象 - 定义一个类的过程就是一个抽象的过程(数据抽象、行为抽象)通过抽象我们可以将数据和操...

  • Java学习第三周总结

    容器 容器(Container)- 承载其他对象的对象Collection List 列表 Set 集合从Java...

  • Java第三周编程题

    1 奇偶个数(5分) 题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程...

网友评论

      本文标题:Java(第三周)

      本文链接:https://www.haomeiwen.com/subject/gnhemqtx.html