初识Java中的继承,多态和接口

一:初识Java
1.Java文件的步骤

1.编写源文件(.java)

2.编译(把Java文件转换为字节码文件)

3.运行(.class)

2.Java中命名的规则
A.
包名:
由字母数字_$组成,不能以数字开头
包名首字母小写
不能有点【.】
B.
java类名
由字母数字_$组成,不能以数字开头
首字母大写
要和文件名一致
3.面向对象设计步骤

​ 1.提取类
​ 2.提取类中的静态属性—》字段
​ 3.提取类中的动态属性—》方法

4.类的三大特性
封装:将具体的实现步骤私有化,提供共有名字让其可以操作
继承:子承父
多态一个事物的多种形态
5.Java中的关键字
1.final(常量修饰符)

作用:可以用来修饰变量,方法和类

注意

final修饰特点
变量只能初始化一次值
方法方法不能被重写
类禁止被继承
2.static(静态)

区别C#的一点:可以通过类名去点静态成员,也可以通过对象名【但是一般不建议用对象名去点】。

3.this和super

this:当前类的对象的引用。
super:调用父类的成员【类似于C#的base关键字】。

6.构造函数

​ 1、作用:new对象,顺带给成员变量赋值
​ 2、语法:

访问修饰符 类名(形参){}

​ 3、分类:
​ 根据参数个数:有参和无参
​ 根据显示方式:隐式和显示
【当没有自定义构造函数的时候,就有一个隐藏的无参构造函数 ,而一旦手写构造函数,那么就不会存在无参构造函数】

7.访问修饰符
访问修饰符范围
public任何地方都可以访问,本类子类直接访问,其他类通过对象名
protected本类,子类【同包,不同包】可以访问
friendly本类,同包子类可以直接访问
private只有本类可以访问
二:继承

1.定义:两个类之间的关系

2**.语法**:

子类 extends 父类
3.子父类之间的关系

A.成员:子类可以拥有父类中的非private成员

B. 构造函数:
子父关系:当调用子类构造函数时,一定会先调用父类的无参构造函数
调用顺序:先父后子
默认情况先父类的无参
C.子类显式调用父类的构造函数

语法:在大括号里写super(); 【要求:在调用构造函数中,只能位于第一行】

4.关键字super

定义:当前类的父类成员引用

运用

super()----->调用父类构造函数

super. ------调用属性或方法

5.优点:

A、提高的重用性

B、子类可以扩展自己功能(子类可以拥有父类的成员,还可以具有自己的特性)

6.缺点:

A、增加耦合:父类拥有的子类一定有,父类一旦被修改一定会影响到子类

B、继承是一种侵入式编程

7.区别Java和C#的重写

在C#中要表明是重写一定要在父类中显示定义(virtual,abstract),而Java中可以省略

三:多态

1.定义:一种事物的多种形态

2.实现方式
A.重载
特点
在同一个类
名相同,参数不同(个数不一样,对应下标的类型不一样)
B.重写

1.定义:实现多态,多个类之间的多态

2.前提:有继承关系

3.特点:不同的类,方法名,参数个数和类型相同

4.实现

A.普通的重写:相同的方法名,参数个数和类型,注释可写可省略(@override)

B.抽象方法
特点
没有方法体
必须在抽象类中
子类必须重写方法,除非子类也是抽象类
C.抽象类
特点
不能实例化
包含抽象方法,也包含普通方法
3. 判断数据类型

1.关键字:instanceof

2.语法:
对象/变量名 instanceof 数据类型
3.Java中类/对象之间关系
关系
is a:继承关系
has a:包含关系
like a:像关系
4.C#关键字
  1. is(判断数据类型)

  2. as(强转)

4.子父转换

1.向上转型:子类到父类【子类对象赋值给父类引用】
2.向下转型:父类到子类【将一个父类对象名强转为子类】

四:接口
1.定义

是一系列方法的声明,一些方法特征的集合

2.语法
public interface 接口名{}
3.作用

约束子类必须拥有某种行为【规定了子类一定拥有某个功能】

4.子类实现接口
子类 implements 接口名1,接口名2
//【如果子类要继承父类,继承在前,接口在后】
子类 extends 父类 implements 接口名1,接口名2
5.特点
不能被实例化
只能是抽象方法,访问修饰abstract【默认访问修饰:public abstract】
成员变量只能定义静态常量【默认访问符:public static final】
不能有构造函数
6.继承与接口

继承:单继承–》一个类有且只能有一个父类
接口:多实现–》一个类可以实现多个接口

7.接口和抽象类
相同点不同点
都不能被实例化关键字:抽象类:abstract;接口:interface
约定子类必须实现方法接口只能有抽象方法
抽象类可以有非抽象方法
接口不能有构造函数
抽象类可以有构造函数
成员变量:
抽象类可以有非静态的,可以不是常量
接口:用static final修饰
8.C#接口与Java接口的不同之处
C#Java
语法子类 : 父类, 接口名1,接口名2子类 implements 接口名1,接口名2
变量public static constpublic static final
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值