接口---

为什么需要接口?接口和抽象类的区别?

– 接口就是比“抽象类”还“抽象”的“抽象类” ,可以更加规范的对子类迚行约束。 全面地专业地实现了:规范和具体实现的分离。

– 接口就是规范,定义的是一组规则,体现了现实世界中“如果你是…则必须 能…”的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你好人,则必须干掉坏 人;如果你是坏人,则必须欺负好人。

– 接口的本质是契约,就像我们人间的法律一样。制定好后大家都遵守。

– 项目的具体需求是多变的,我们必须以不变应万变才能从容开发,此处的 “不变”就是“规范” 。因此,我们开发项目往往都是面向接口编程!

接口相关规则

– 接口中所有方法都是抽象的。

– 即使没有显式的将接口中的成员用public标示,也是public访问类型的

– 接口中变量默认用 public static final标示,所以接口中定义的变量就是全 局静态常量。

– 可以定义一个新接口,用extends去继承一个已有的接口

– 可以定义一个类,用implements去实现一个接口中所有方法。

– 可以定义一个抽象类,用implements去实现一个接口中部分方法。

如何定义接口?

–格式:

▪[访问修饰符] interface 接口名 [extends 父接口1,父接口2…] {

–常量定义

//总是public static final

–方法定义

//总是:public abstract}

如何实现接口

–子类通过implements来实现接口中的规范

–接口不能创建实例,但是可用于声明引用变量类型。

–一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的。

–Java的类只支持单继承,接口支持多继承

▪ C++支持多重继承,Java支持单重继承

▪ C++多重继承的危险性在于一个类可能继承了同一个方法的不同实 现,会导致系统崩溃。

▪ Java中,一个类只能继承一个类,但同时可以实现多个接口,既可 以实现多重继承的效果和功能,也避免的多重继承的危险性。

▪ class Student extents Person implements Runner,Flyer

▪ {…}

▪ 注意:extends 必须位于implements之前

内部类—成员内部类

把一个类定义在另一个类的内部称为内部类

注意事项:

(1)外部类不能直接使用内部类的成员和方法 ▪

(2)如果外部类和内部类具有相同的成员变量戒方法,内部类

 默认访问自己的成员变量戒方法,如果要访问外部类的成员变量,

 需使用this关键字

语法

外部类 外部类对象=new 外部类(); ▪ 外部类.内部类 内部类对象=外部类对象.new 内部类 ();

public static void main(String [] args){

Outer out=new Outer();//创建外部类的对象

Outer.Inner inner=out.new Inner();//创建内部类的对象

inner.print();//访问内部类的方法

如果主方法在外部类内部,则可以省略Outer Inner inner=out.new Inner();

new 外部类类名.内部类().方法名

外部类类名.内部类 内部类对象名=new 外部类类名.内部类类名();

package cn.bjsxt.demo;//声明包
class Outer//声明类
{
private static String info="hello World";//声明私有属性
static class Inner//声明静态内部类
{
public void print(){//打印输出的方法
System.out.println(info);
}
}
public static void main(String [] args){
new Outer. Inner().print();//调用方法
}
}

使用static声明的内部类不能访问非static的外部属性

内部类--匿名内部类

适合只需要使用一次的类,安卓中使用的比较多

this.addWindowListener(new WindowAdapter(){
         @Override
          public void windowClosing(WindowEvent e){

           System.exit(0);
       }

})

方法内部类是指:将内部类定义在外部类的方法 中。

▪ 注意事项:

▪ (1)方法内部类不能在外部类的方法以外的地 方使用,所以

▪ 方法内部类不能使用访问控制符和static修饰符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值