0
点赞
收藏
分享

微信扫一扫

java(2)

回望这一段人生 2022-02-14 阅读 99

 面向对象特征封装、继承、多态

决定调用哪个重写的方法(多态在继承关系中的表现),是由new的创建的实例对象来决定的。

特别强调了:动态绑定   一个父类对象可以指向多个子类的现象。

 引用数据类型

                  抽象类和接口

java为了加强动态绑定,为了加强方法重写(为了加强多态),设计了抽奖类和接口

抽象类:(抽象类和抽象方法)

父类里面的抽象方法没有方法体(没有{ })

 一个子类继承抽象父类,必须要方法重写

这个类定义成抽象,这个类不能实例化。可以有构造函数

抽象类一定依赖子类完成实例化。

抽象类一定要去动态绑定。

抽象类是用abstract关键字修饰的,不能实例化,不能去new创建对象;

抽象类可以有构造函数,提供给子类的构造函数完成依赖

抽象类可以有抽象方法,也可以没有抽象方法

一般来说:抽象类提供设计抽象方法,给子类继承,就是为了方法重写。

如果一个类有抽象方法,这个类肯定是抽象类。

abstract和static不能同时修饰一个方法

输入的一个例子:

 输入验证码:

抽象类可以有构造函数:

.this.b表示当前类(test),b是Base类里的,所以不能用this。

接口:接口是完全的抽象类,它不能实例化,不能有构造函数,不能有实例方法。里面只有抽象方法(static可以省略)。  依赖子类完成实例化。

作用:Java为了加强动态绑定,为了加强方法重写(为了加强多态)

例子:

 动态绑定

 接口中所谓的变量,不是变量,是常量。  final int a = 10; final 可以省略。 final static int a = 10;(可用static)

抽象类和接口一定是父类,一定是被子类继承和实现。

接口中所谓的变量,不是变量,是常量。

接口中的方法都是要被重写的,所以方法不能修饰成private,protected

 抽象类和接口作用是一样的

何时定义成抽象类?何时定义成接口?  优秀考虑级别
 *    
 *      1. 抽象类设计的参考是:子类是同一类型    学生  老师     学生类型和老师类型是不是同一类。 子类  is  父类  建议考虑是抽象父类 是true。
 *      
 *      
 *      2. 接口设计的参考是: 接口父类  has 包含 子类  功能    人  run()  汽车  run()   球  run()
 *      

 抽象类和接口区别,统一描述
 *  
 *        共同点:
 *          1.  都不能实例化,都不能new。
 *          2.  作用:为了加强动态绑定,为了加强方法重写,就是为了加强多态。
 *          3.  接口和抽象类都是父类,都是被继承和实现的。
 *          
 *         不同点:
 *          1.  接口中定义都是常量final,抽象类不是。
 *          2.  抽象类可以有构造函数,接口不可以有构造函数
 *          3.  接口中一定有抽象方法,抽象类可以有抽象方法,也可以没有。
 *          4.  子类继承抽象类extends关键字,子类实现接口implements关键字
 *          5.  继承只能单继承,接口可以多实现(多继承),多个父类。

extends只能有一个父类    implements 可以有多个父类

只能直接继承一个父类,可以实现多个父类

Java的多继承是通过接口来实现的。

 

(java8版本中)

函数式接口:这个接口中只能定义一个方法                    (为了面向函数式编程加入的)

lambda表达式:

java从子类实现接口模式 简化成 一个表达式,函数式表达式,lambda表达式 ,箭头表达式

 lambda与下面功能相同

lambda表达式实现加减:

底层代码:

内部类:

 作用就是为了加强封装, 一个类中嵌套一个类

内部类总共4个表现形式:

                  1. 普通内部类

                  2. 静态内部类

                  3. 局部内部类

                  4. 匿名内部类

普通内部类:

1.普通内部类Inner中不能定义关于static

静态内部类:   

可以定义全部,但是注意使用this关键字      

匿名内部类:

没有class关键字,没有名字的类,也被lambda取代

局部内部类:

在一个方法中可以定义类,必须预留访问的入口。

           

举报

相关推荐

Java(2)

java 学习2

JAVA博客2

java实验(2)

JAVA总结2

java基础2

Java复习_2

java作业2

0 条评论