接口,抽象类 ,abstract,类中没有抽象方法定义抽象类,多态的成员访问特点

1.接口和抽象类的区别?

1)成员的区别
抽象类:
  成员变量:既可以是变量,也可以是常量
  成员方法:可以存在抽象方法(必须携带abstract关键字),也可以有非抽象方法
  构造方法:存在无参/有参构造方法,---目的需要给数据进行初始化,分层初始化
接口:
  成员变量:只能是常量,存在默认的修饰符public static final修饰
  成员方法:只能是抽象方法:存在默认的修饰符 public abstract
  构造方法:没有
  
  
2)关系的区别
类与类之间: 继承关系,只支持单继承,不支持多继承,但是可以多层继承
类与接口:   实现关系,一个类继承另一个类的同时可以实现多个接口,中间逗号隔开
接口与接口: 继承关系,可以支持单继承,也可以支持多继承,多层继承...

3)设计理念
抽象类:----->强制子类必须完成的事情,由于存在继承关系,体现的是一种"is a"的关系!
接口-------->体现某个事物额外的功能,谁实现该接口就具备该功能,体现的是一种"like a"的关系!

    Java面向对象---->面向接口编程
    			先去定义接口
    					需要根据一些相关的字段(参数)去接口中功能
    					

2.abstract和哪些关键字冲突

final,static,private

3.一个类中没有抽象方法,这个类定义为抽象类的意义?

不想让当前这个类进行实例化,如何实例化呢
它可能提供一些静态功能,静态功能的返回值类型是它本身

举例:
			jdk提供日历类  Calendar  抽象类
			
			静态功能---返回值就是它本身
			public static Calendar getInstance() {
					//调用内部的其他方法
			}
			

4.多态的成员访问特点
1)成员变量:编译看左,运行看左
2)成员方法:非静态 编译看左,运行看右(存在方法重写)
3)静态方法:算不上重写,编译看左,运行看左----:类名访问
4)构造方法:抽象类多态
存在继承关系(对类的成员进行数据初始化:分层初始化)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值