java32

1.抽象类必须有子类才有意义
2.子类中会默认有构造器来调用父类的构造器
3.接口:表示一种规范
interface 接口名(命名规则:在名称前加上I后加上able){
}
-2接口也生成对应的字节码
-3接口其实是一个特殊的抽象类
interface 接口名{
void transport();//字节码中实际上是public abstract void a();
}
}
4.接口注意点
-1接口没有构造器(也没有默认构造器),不能创建对象
-2接口中定义的变量,都是全局的静态常量(相当于加了final)
-3接口中定义的方法都是公共的抽象方法
interface Iusbable{
String name = "ss";
//相当于public static final String name;又因为当final修饰一个字段时,字段相当于常量,所以必须加上初始值
void a();
}
-4接口是可以被继承的,并且可以多继承(继承的父类也必须是接口类),但是类不可以多继承
接口中一般不会有方法的覆盖(没有意义)
5.接口:
开始只是规范说明
现在是接口的实现类
implement:实现
实现关系也称继承关系(可以写成多态的形式),但不等同
接口的实现:
-1定义一个类,这个类及可以继承(extends)其他的类(一个),也可以实现(implements)其他的接口(多个)
********继承的是普通的类。
-2这个类必须去覆盖接口中的方法(覆盖的时候,子类覆盖权限必须大于等于父类的范围),接口中的方法默认是
public abstract void a();
-3到具体的对象
面向接口编程:类实现接口的过程中赋值给父类
eg:
interface Iwalkable{ //接口
void walk(); //public abstract void walk
}
class Animal{ //普通的类

}
class Cat extends Animal implements Iwalkable{
public void walk() {
System.out.println("走猫步");
}
}
public class t {

public static void main(String[] args) {
Iwalkable a = new Cat();//面向接口编程
a.walk();
}
}
6.抽象类和接口的相同点:
-1都是被其他类实现或者继承
-2里面都有抽象方法,并且子类中必须覆盖其父类的抽象方法
-3都不能实例化(即不能new())
不同点:
-1抽象类中可以有构造器(但一般不会去创建构造器,因为没有意义,抽象类本身就是抽象的,没有具体的东西),
而接口中不可以有
-2抽象类中可以包含普通方法和抽象方法,而接口中只能有抽象方法
-3接口中默认成员变量:public static final 变量--》相当于静态常量
抽象类中是默认权限(同一个包中能访问,不同包中是不能访问的)
-4接口中的方法:public abstract void a(){};
抽象类中是默认权限:void a(){};

猜你喜欢

转载自www.cnblogs.com/-zero/p/10387537.html