1)抽象:
抽象的关键字:abstract
1.修饰类 :
用 abstract修饰的类 ,被称为抽象类
抽象类是类的半成品 。
抽象类是类的 半成品 —> 类是对象的抽象, 对象是类的具体实例
抽象类 ------> 类 -------> 对象
普通类中只有普通方法,抽象类中既有普通方法也有抽象方法,所以可以理解为抽象类是类的半成品。
抽象类和普通类可以有继承关系,抽象类可以没有抽象方法,抽象类是由构造方法的。
抽象类是不可以创建对象的,,抽象类存在的意义就是用来被继承的,并且它的构造器就是用来被子
类调用的。
2.修饰方法: 用abstract修饰的方法, 被称为 抽象方法
特点: 抽象方法 没有方法体 , 没有具体实现
语法结构: 访问修饰符 abstract 返回值类型 方法名(参数列表);
是先有的抽象类有的抽象方法;
有抽象方法的类一定是抽象类嘛?
答: 一定是
抽象类中一定有抽象方法嘛?
答 : 不一定
存在的意义就是为了被继承 , 抽象方法就是用来被重写的;
抽象类可以被普通类继承也可以被抽象类继承;
普通类在继承抽象类时必须重写抽象类的方法;
抽象类继承抽象类时 ,就可以不重写。
抽象类也是类嘛 ?
2)接口:
关键字:interface
接口不是类 ,不可以创建对象
接口是完全抽象,没有具体方法
接口 —> 抽象类 -----> 类 -----> 对象
接口中没有具体方法,都是抽象方法
接口可以被普通类和抽象类实现(implements)
类和类之间是继承关系 extends ,只支持单继承 ,只有一个父类,
接口和类之间是实现关系implements ,可以多实现。
接口中可以有属性,接口中属性默认就是静态常量:static final int a =3;
final修饰的变量叫做常量
特点:
接口中只有静态常量和抽象方法
没有构造器,静态块儿,构造快儿,不能创建对象
抽象类和普通类都可以实现接口
类与类之间是单继承,多重继承
类与接口时多实现,一个类可以实现多个接口
多态问题: (动态绑定技术)
前提 继承
- Aniaml a = new Dog();// 普通类 和 普通类
- A aa = new B(); //A 是抽象类 , B是 不同类 ,类和类之间只要有继承关系
就可以使用 动态绑定技术(多态) - MyInterface my = new B();
MyInterface2 my2 = new B();