java学习笔记-7

本文详细解读了Java接口的定义、使用规范,包括抽象方法和继承接口;接着介绍了抽象类的概念,其抽象方法和子类规范;并深入剖析了内部类(成员、局部和匿名类)及其作用。掌握这些概念有助于提升Java编程技巧。
摘要由CSDN通过智能技术生成

1.接口

1.1接口的定义:
java接口是一系列方法的声明,是一些方法特征的集合。
接口的本质是一种规范,是对外部特征的抽象。
public  interface  接口名{}
1.2接口的使用规范
  1. 接口的成员方法必须是全局抽象类型public abstract
  2. 接口只能定义常量,不能定义变量,定义的变量都会被编译器自动加上public static final修饰,必须在定义时赋值
  3. 接口中不能由构造方法,接口不能被实例化
  4. 接口可以被实现,接口的实现类要么实现接口中定义的所有抽象方法,要么成为抽象类
  5. 一个接口可以继承多个接口,但不能继承类(无论是具体类还是抽象类)

2.抽象类

2.1 抽象类的定义:
权限修饰符  abstract class  类名{}
2.2 抽象类和抽象方法的使用规范
  1. 抽象类不能被实例化‘
  2. 抽象方法只能由方法声明,不能由方法体
  3. 抽象类用来被继承,抽象方法用来被重写
  4. 抽象类可以没有抽象方法,包含抽象方法的类一定是抽象类
  5. 抽象类的子类,要么重写父类中所有的抽象方法,要么声明为抽象类
  6. 抽象类引用指向子类对象实现多态
  7. 抽象类中有构造方法,成员方法(抽象和非抽象的)和变量、常量
  8. 和具体类一样,可以实现多个接口
2.3 抽象类的作用:

1、模板作用,比如父类的一个普通方法中包含抽象方法,抽象方法推迟到子类去实现
2、也能起到规范的作用

3.内部类

3.1 内部类的位置

内部类可以定义在类的内部,成员方法内部或作为实参传递。

3.2 成员内部类
特点:创建内部类的目的,大多是不想被外界访问,所以内部类应该私有化,再提供一个可供外界调用的方法
	public class Outer {//外部类
    private  int  num = 10;
    private class Inner{//内部类
        private int x = 200;//内部类的成员变量
        public void print(){//内部类的成员方法
            System.out.println(num);
        }
    }
    public void show(){
        Inner inner = new Inner();
        System.out.println(inner.x);
        inner.print();
    }
}

public class OuterTest {
    public static void main(String[] args) {
        Outer outer = new Outer();
        outer.show();
        //在其他类中访问外部类中的内部类
        //Outer.Inner  inner = new Outer().new Inner();
    }
}
3.3局部内部类
特点:局部内部类在他所在的方法之外无法被访问,方法内若要访问,则需要创建内部类的对象
public class Outer {//外部类
    private  int  num = 10;
    public void mehtod(){
        int num2 = 20;
        class Inner{// 局部内部类在外界(外部类之外的类)是无法直接访问的
            public void show(){
                System.out.println(num);
                System.out.println(num2);
            }
        }
        Inner inner = new Inner();
        inner.show();
    }

    public static void main(String[] args) {
        Outer outer = new Outer();
        outer.mehtod();
    }
}
3.4 匿名类

目的:作为参数传给类的引用或接口

​	格式:new 类名(){
​			重写的方法
​	}

new 接口名(){
​	 实现方法
}
public class DaoTest{
    public static void main(String[] args) {
         DaoTest daoTest = new DaoTest();
         daoTest.test(new Dao() {
             @Override
             public void add() {
                 System.out.println("匿名内部类实现....");
             }
         });
     }

     public void test(Dao dao ){
            dao.add();
     }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值