抽象
1抽象类和抽象方法有关知识点
a.用关键字abstract标识,抽象类中可以有抽象方法和非抽象方法,但是有抽象方法必为抽象类
b.抽象类中的抽象方法没有具体功能,由子类重写或者继承。子类必须重写抽象父类的方法或者它本身也是抽象类。
c.抽象类不能实例化,
具体代码:
要点:
接口
。
接口:
变量:只能是常量,默认修饰词为public static final (三者都可省略,系统默认就是这三个修饰词的) 命名规则:全大写,单词之间用下划线—隔开。
构造方法:没有
成员方法:可以是抽象的,也可以是非抽象的。
实现:不管实现了几个接口,实现类都是要重写的,否则报错
类和类:类和类只能单继承,对于继承来说,有一个隐藏的规则(父类中的子类需要是同一种事物,比如乒乓球和篮球的那个练习)
接口和类:类可以实现多个接口,也可以在继承一个类后实现多个接口,当继承的类中和接口中方法相同,会优先实现接口的类。
接口和接口:可以单继承,也可以多继承。
接口中的方法:default方法
a.在接口中定义了一个方法,继承类实现,倘若还需要在接口中定义方法,子类实现还需要改变,这个时候就可以用default方法
public default 返回值 方法名(参数){};
b.默认方法不是抽象方法,不要求重写,但是当需要重写的时候,不能加default
c.public 可以省略,default不能
d.倘若实现了多个接口,多个接口存在相同名字的默认方法,子类就必须对该方法进行重写。否则实现类不知道该实现哪个方法。
接口中的方法:
a.接口中的方法可以是静态的,也可以是非静态的。静态的方法只能通过接口名称调用,不可通实现类对象调用接口。
b.私有方法:在接口中抽取公共代码组成私有方法
普通私有方法:private 返回值类型 方法名称(参数列表){方法体}
静态私有方法:private static 返回值类型 方法名称(参数列表){方法体}
注意:privite 的方法只有接口自己才能调用,不能被实现类或别人使用。
适配器设计模式
a.在一个接口中,我们会有很多抽象方法,如果其他类要实现这个接口中的某个方法,我们就要实现这个类的所有抽象方法,不利于代码的书写和阅读,采用适配器模式,很好地解决了这个困难
b.先用一个抽象类实现这个接口,再让原有的实现类去继承这个抽象类,最后实现这个方法即可。
内部类
知识点:内部类一般是作为外部类的一个组成部分出现,单独出现没有意义。内部类可以直接访问外部类成员,包括私有。外部类访问内部类成员必须实例化。
改正方法
1.内部类:就是在类里面再定义一个类
修饰词有:private,默认,protected,public,static
怎么获得内部类?
a.倘若内部类被private修饰:写一个方法获取内部类,用外部类调用
b.如果是public修饰,则直接可以new出来。
outer.Inter oi = new outer().new Inter();
成员内部类怎么获得外部类中的内容
10:outer.this.a(外部类通过这种方式引用)
20. this.a (传递的就是内部类对象)
30:a (就近一致原则)
匿名类:常常用做测试的时候使用,以往写类和接口的时候,要先定义一个类去接受接口或者抽象类,很麻烦,使用匿名类则可以简单地进行测试(需要注意的是,其实new出来的是一个对象,所以可以直接去使用它)