Java——面向对象(8).抽象和接口

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37597439/article/details/81152022

抽象方法:
1)由abstract修饰
2)只有方法的定义,没有方法体的

抽象类
1)由abstract修饰
2)有抽象方法的类必须是抽象类
3)抽象类不能被实例化
4)抽象类是需要被继承的,子类
4.1)重写
4.2)也声明为抽象类——不常用
5)抽象类的意义
5.1)包含公共的行为和属性,被子类所共享
5.2)为所有子类提供一种统一的公共的类型——向上造型
5.3)包含抽象方法,为子类提供一个统一的入口
5.4)如果一个类继承了抽象类。就必须重写其抽象方法,除非该类也定义为抽象类(不同的子类有不同的实现方法)

java是不建议空方法的

Shape s = new Shape(); ——错误
abstract class Shape{ //抽象类(不完整)
int c; //周长
abstract double area(); //抽象方法(不完整)
}
abstract class Square extends Shape{ //方形类
}
class Circle extends Shape{ //圆形类
double area(){ //重写–变不完整为完整
return 0.0796*c*c;
}
}
Circle cir = new Circle();

abstract class 汽车{
abstract void 制造发动机();
}

class 汽车{
void 制造发动机(){
}
}
new汽车对象

接口:接口可以看作是特殊的抽象类,即只包含有抽象方法的抽象类
1.是一个标准,规范
遵守了这个标准,就能干某件事——API之后再去了解
2.由interface定义
3.只能包含常量和抽象方法

interface Inter1{
public static final int NUM = 5;
public abstract void show();

double PI = 3.14159;   //默认public static final
void sayHi(){}         //pubilc static  

//int num;           //编译错误
//pubilc void say(){}//编译错误

}

4.接口不能被实例化
5.接口也是需要被实现/继承的(单独存在是没有意义的)
其实现类/子类, 必须重写其所有的抽象方法
6.一个类可以实现多个接口,用逗号分隔(只能继承一个父类)
若又继承又实现时,应该先继承extends,后实现implements。
7.接口可以继承接口

类对类———————————继承
接口对接口——————继承
类和接口——————–实现

interface Inter2{
void a();
void b();
}

class Aoo implements Inter2{
public void a(){};
pubilc void b(){}; //实现接口的类中重写接口的方法,必须是public
}

猜你喜欢

转载自blog.csdn.net/qq_37597439/article/details/81152022