第十四课:抽象类和接口

第十四课:抽象类和接口
一、抽象方法:在子类继承父类之后,发现有些方法必须要进行重写!但是如果父类中不编
写此方法,就没有办法使用多态调用了,所以必须要写,但是没必要实现,
于是成为了抽象

// 父类
public abstract class Pet{
public abstract void eat(); // 抽象方法没有方法体
}

// 子类
public class Dog extends Pet{
public void eat(){

}

}

// 子类
public class Cat extends Pet{
public void eat(){

}

}

main(){
Pet pet = new Dog(); // 父类的引用指向子类的对象
pet.eat();
}

二、了解抽象类和普通类的区别
1.抽象类的特点:
⑴抽象类不能被实例化(实例化:创建对象)
但是抽象类可以作为引用去指向子类的对象

public abstract class Pet{
public abstract void test();
}
// 匿名内部类:可以将匿名内部类 理解为 是该类的一个子类(匿名的) 这个东西
中能用一次
Pet pet = new Pet(){
@Override
public void test(){

  }

};

⑵抽象类可以有构造方法
它的构造方法时用来帮助子类创建对象的
⑶只要有抽象方法存在,这个类就是抽象类
抽象类中可以有抽象方法,也可以有普通方法
(“父债子偿”)一个抽象类里的抽象方法 必须要被其子类重写(实现),如果子类不
重写,它也是抽象类

三、掌握抽象类和抽象的方法定义
abstract 抽象的

四、会定义接口

五、了解“接口”的含义
1.接口1:
public class Student{
// 1.私有属性化
private String name;
// 2.提供公共的getter/setter接口
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
}
以后你可能要给别人编写接口
•举例:你要开发一个天气APP,不需要自己去花费时间等测量实时天气情况,只需要
获取一下国家气象局的提供的天气接口即可

国家气象局的数据的数据收集到之后,开发GG给你写了一个方法,这个方法
可以被你调用 你只需要按照要求传入指定的参数,即可得到指定的结果!

public String getxx(String地址,Date时间,String你想要的天气数据编号等…){
//
}

2.接口2:USB接口 电源接口…
3.接口3:interface
实现一个防盗门的功能
门类:开门和关门的功能
锁类:开锁和上锁的功能
防盗门 is a 门 所以可以继承门类,拥有了开门和关门的功能
但是它想拥有开锁和上锁 不能通过继承锁类 1.防盗门 is not a 锁 2.Java中是单
根继承 只能有一个直接父类
如果还想拥有锁的功能,这时候就可以使用接口interface 防盗门 has a 锁

 继承:找亲爹
 实现接口:认干爹
 你只能有一个亲爹,你可以有多个干爹
 之所以在Java诞生接口这个概念,其中的原因有:在日趋庞大的系统中,如果将所有

的功能都定义在一个类中,那么必然会导致耦合性的加剧,还有扩展性的降低 所
以我们把一些功能进行聚合,放到接口中,未来谁拥有这些功能直接实现此接口即可

/**

  • 防盗门

  • @author Raymond

  • 2019年2月17日 下午0:35:20
    */
    public class ThiefDoor extends Door inplements Lock,CatEye{
    @Override
    public void upLock(){

    }

    @Override
    public void downLock(){

    }
    }

/**

  • 门:有开和关

  • @author Raymond

  • 2019年2月17日 下午0:39:56
    */
    public class Door{

    public void open(){
    System.out.println(“开门”);
    }

    public void close(){
    System.out.println(“关门”);
    }
    }

/** 锁接口

  • @author Raymond

  • 2019年2月17日 下午0:48:30
    */
    public interface Lock{
    // 在接口中编写普通方法 只能是抽象的abstract 公共的public
    void upLock();
    void downLock();
    }

    *4.接口的一些注意事项:
    ⑴接口中的普通方法,都是公共的public抽象的abstract
    ⑵接口中的属性 都是公共的public静态static常量final
    ⑶接口中的方法也都需要子类去重写
    ⑷接口不能实例化,也可以编写匿名内部类
    ⑸接口和接口之间可以有继承关系
    5.演示案例:
    需求:模拟手机的功能
    手机分为智能机和普通机 手机这个概念就证明它肯定有通话和短信功能
    普通机有的功能:听歌
    智能机有的功能:上网冲浪 看视频 打游戏 听歌

    智能机类
    普通机类
    手机类
    听歌接口
    上网冲浪接口
    看视频接口

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值