zoukankan      html  css  js  c++  java
  • Java学习(二)

    Java学习(二)

    标签(空格分隔): Java


    多态、抽象、接口

    多态:

    所谓多态,就是指一个引用(类型)在不同情况下的多种状态,也可以这样理解:多态是指通过指向父类的指针,来调用在不同子类中实现的方法。

    多态注意事项:java允许父类的引用变量引用它的子类的实例(对象),这种转换时自动完成的

    抽象类:
    当父类的一些方法不能确定时,可以用abstract关键字来修饰该方法【抽象方法】,用abstract来修饰该类【抽象类】.

    抽象类——深入讨论:

    抽象类是java中一个比较重要的类:(1)用abstract关键字来修饰一个类时,这个类就叫抽象类。(2)用abstract关键字来修饰一个方法时,这个方法就是抽象方法。(3)抽象方法在编程中用的不是很多,但是在公司笔记时,却是考官比较爱问的知识点。

    抽象类——注意事项:
    (1)抽象类不能被实例化
    (2)抽象类不一定要包含abstract方法,也就是说,抽象类可以没有abstract方法
    (3)一旦类包含了abstract方法,则这个类必须声明为abstract
    (4)抽象方法不能有主体,如abstract void a(){};这样是错误的。

    抽象类中可以有实现了的方法的

    接口:接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来。语法:
    class 类名 implements 接口

    {

    方法;
    变量;
    }

    小结:接口是更加抽象的抽象的类,抽象类里的方法可以有方法体,接口里的所有方法都没有方法体,接口体现了程序设计的多态和高内聚低耦合的设计思想。

    接口——注意事项:
    (1)接口不能被实例化
    (2)接口中所有的方法都不能有主体
    (3)一个类可以实现多个接口
    (4)接口中可以有变量,但是变量不能用private和protected修饰。

    关于这一点还有两点需要说明:a、接口中变量,本质上都是static的,而且是final,不管你加不加static修饰。b、在java开发中,我们经常把经常用的变量、定义在接口中,作为全局变量使用,访问形式:接口名.变量名

    (5)一个接口不能继承其它的类,但是可以继承别的接口

    实现接口vs继承类

    java的继承是单继承,也就是一个类最多只能有一个父类,这种单继承的机制可保证类的纯洁性,比c++中的多继承机制简洁,但是不可否认,对子类功能的扩展有一定影响,所以我们认为:(1)实现接口可以看作是对继承的一种补充,还有一点,继承是层级式的,不太灵活。(2)实现接口可在不打破继承关系的前提下,对某个类功能扩展,非常灵活。

    1、前期绑定:在程序运行之前进行绑定,由编译器和连接程序实现,又叫做静态绑定,比如static方法和final方法,注意,这里也包括private方法,因为它是隐式final的。

    2、后期绑定:在运行时根据对象的类型进行绑定,由方法调用机制实现,因此又叫做动态绑定,或者运行时绑定,除了前期绑定外的所有方法都属于后期绑定。

    final——概念

    final 可以修饰变量或者方法。

    在某些情况下,程序员可能有以下需求:
    (1)当不希望父类的某个方法被子类覆盖时,可以用final关键字修饰

    (2)当不希望类的某个变量的值被修改,可以用final修饰。如果一个变量是final,一定要赋初值,否则编译不过去。

    (3)当不希望类被继承时,可以用final修饰。

    final——注意事项:
    (1)final修饰的变量又叫常量,一般用xx_xx_xx来命名。

    (2)final修饰的变量在定义时,必须赋值,并且以后不能再赋值。

    final——什么时候用:
    (1)因为安全的考虑,类的某个方法不允许修改。

    (2)类不会被其它的类继承。

    (3)某些变量值是固定不变的,比如圆周率

    https://blog.csdn.net/android_jiangjun/article/details/19327627

  • 相关阅读:
    闭包跟装饰器
    几个常见的面试题目
    函数的进阶
    python的生成器和迭代器
    Python的数据类型
    “随手记”开发记录day09
    “随手记”开发记录day08
    “随手记”开发记录day07
    “随手记”开发记录day06
    “随手记”开发记录day05
  • 原文地址:https://www.cnblogs.com/hit-zb/p/11105056.html
Copyright © 2011-2022 走看看