2020-12-18

一.抽象类
思考一个问题:美女?
1.美女是抽象的,他不是具体的指向
2.假设美女有一个打扮的功能 dress
不同的美女打扮的功能实现的都不一样
class Beauty{
public void dress(){
//,
}
}

 class PureBeauty extends Beauty{
 	//重写父类的打扮方法
 }
 class MatureBeauty extends Beauty{
 	//重写父类的打扮方法
 }
 ---->既然子类都会重写父类的方法,是否可能父类只定义方法,而不需要声明方法体

-----概念---------------------------------------------------------
1.抽象方法:声明一个方法而不去书写方法体的方法,这就是一个抽象的方法
2.抽象方法需要使用关键字abstract进行修饰
3.一个类中如果有抽象的方法,那么他一定是抽象类,抽象类也需要使用abstract关键字进行修饰
4.抽象类他还是一个类.类的属性,方法,构造器的定义都可以和普通类一样
5.抽象类可以有抽象方法,也可以没有抽象方法.他也可以有非抽象方法
6.如果继承一个抽象类,需要实现父类所有的抽象方法!
7.抽象类不能直接实例化(不能new)

     案例1.三个英文:敏捷(Agility),智力(intelligence),力量(power) 

DOTA2里面的英雄有三种类别:
敏捷英雄,智力英雄,力量英雄,要求使用抽象类思想实现以下功能:
1.抽象类英雄Hero:昵称, 1个技能介绍方法:show()
2.敏捷英雄AgiHero:继承英雄类,重写show
3.智力英雄IntHero:继承英雄类,重写show
4.力量英雄PowerHero:继承英雄类,重写show
5.构建类Game,里面有一个方法play(),
如果传入是智力英雄,就执行show方法
如果传入是力量英雄,就执行show方法
如果传入是敏捷英雄,就执行show方法
6.写主方法测试GameTest,里面使用Game对象调play方法,并对调返回的对象的show方法

  案例2.动物有2种类别:狗和猫,要求使用抽象类思想实现以下功能: 
1.抽象类动物Animal:名称,年龄, 抽象方法eat和非抽象方法sleep() 
2.狗Dog:继承动物类,重写eat() 
3.猫Cat:继承动物类,重写eat() 
4.构建类动物园Zoo,里面有一个方法play(),传一个动物对象,调用动物的eat和sleep方法 
5.写主方法测试ZooTest,实例化猫和狗,里面使用Zoo对象调play方法,打印 结果	   

二.接口
1.USB接口:不管是U盘,苹果电脑,平板或者各类可以支持USB,只要满足USB的规范,就可以使用
2.插座
3.定义:他是一种公共的规范标准,只要符合标准,大家都可以使用
3.1 java中的接口更多的体现在方法的抽象
学生规范{
//1.不得参与黄赌毒
f1();
//2.不得辱骂他人
f2();
}
//假如继承的语法
class VIP11_坤坤 extends 软帝学生规范{
f1(){
//所有和黄赌毒有一丁点关系的都属于违反准则
}
f2(){
//不得用动物形容他们
}
}
class VIP10_凡凡 extends 软帝学生规范{
f1(){
//所有和黄赌毒有一丁点关系的都属于违反词条准则
}
f2(){
//可以使用舔狗此类网红单词,但是不得恶意辱骂
}
}
//…
3.2 接口是更加纯粹的抽象类,一般接口里面只有抽象方法 (1.8开始,例如集合类的Iterable接口里面有非抽象)
3.3 接口的关键字是interface
3.4 接口的里面方法默认都是publick修饰,可以写abstract,也可以不写
3.5 要想使用接口,需要使用关键字(implements)实现,必须要重写接口的所有抽象方法
3.6 接口不能直接实例化
3.7 [了解]接口可以多继承,功能的集成
3.8 一个类只能继承一个抽象类,但是可以实现多个接口

 接口:他是一种公共的规范标准,只要符合标准,大家都可以使用
          在代码里面,他是一组抽象行为(方法,功能)的集合

4.接口里面所有的变量都是常量, 接口里面的方法和属性都是public修饰的
建议写法: public static final int NUM=20;
public static final String LOGIN_NAME=“登录”;
很多的时候,public final会被省略

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值