java----多态与接口知识点

1.final的用法:
(1)修饰类,该类不能被继承
final修饰成员变量/成员方法
(2)final修饰基本数据类型,那么该类不能改变.
   final修饰引用类型时,引用类型的地址值不能更改,但值可以改
(3)final修饰初始化:被final修饰的成员变量只能被赋值一次,可以先定义,在方法构造完成之前赋值
2.多态:指一个事物在不同时刻的体现显示的一种状态
(1)前提条件:
必须有继承关系
                有方法重写,没有也没关系,但是没有意义
                父类的引用类型指向子类:Fu f=new Zi();
(2)成员访问特点:
成员变量:编译看左,运行看左:(父类有这个变量,不会报错,编译可以通过,输出父类成员变量的值)

成员方法:非静态:编译看左,运行看右;

静态:编译看左,运行看左

(3)好处:提高代码的复用性(继承)

提高了代码的扩展性,父类引用指向子类对象

(4)弊端:不能访问子类特定功能

 解决方法:

1)使用子类的特有功能,创建子类对象,调用子类对象的功能

2)向上转型:父类引用指向子类对象------->向下转型:将父类的引用强制转换成子类的对象
                 Fu f=new Zi();
                 Zi z=(Zi) f;

 注意:向下转型使用不当会出现运行时异常:java.lang.classException;
 3.抽象
(1)抽象类格式:例如:abstract class Animal  {}
抽象方法格式:例如:public abstract void show :没有方法体
(2)抽象类成员特点:

         成员变量:可以出现变量,也可以自定义常量

         成员方法:可以是抽象的,也可以是非抽象的

         抽象类的特性:强制要求子类重写抽象类的抽象方法;提高代码的复用性(继承)
(3)abstract不能和哪些关键字在一起使用?
    private:冲突
    final:冲突
    static:冲突,静态的抽象方法没有意义
4.接口:体现的是该事物的一种扩展的功能:比如猫跳高,狗计算等
(1)格式:interface+接口名称(与类一致)
(2)特点:接口中的方法只能是抽象方法:void jump():省略了public abstract:默认修饰符
        不能直接实例化:不能创建对象
(3)接口中的成员特点:
        成员变量:默认修饰符:比如:public final static int n=10;
        成员方法:只能是抽象方法:默认修饰符:public abstract
        构造方法:接口中无构造方法
5.类与类,类与接口,接口与接口的关系?
        类与类:继承:单继承/多层继承
        接口与接口:继承:单继承/多继承
        类与接口:实现关系:implement:单实现/多实现,还可以在继承一个类的同时实现多个接口
6.接口与抽象类的区别?

 A:成员变量:抽象类:可以常量,也可以变量
                   接口:只能常量
     成员方法:抽象类:可以抽象方法.也可以非抽象方法
                   接口:只能抽象方法
     构造方法:抽象类:可以有参构造,也可以无参构造
                   接口:无构造方法

B:设计原则的区别:
     抽象类:需要实例化,需要抽象多态进行,体现的是一种"is a"的关系,由继承保证
     接口:是事物一种扩展功能,只需子实现类进行实现即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值