instanceof
对象名 instanceof 类名
判断对象是否属于该类或其子类
对象名 instanceof 接口名
判断对象是否属于该接口的实现类
28
多态
输入同样的语句(不限方法名语句),输出不同的结果
抽象方法
修饰符 abstract 返回参数 方法名(传入参数);
普通方法
修饰符 返回参数 方法名(传入参数) {
方法体
}
public abstract void methodName();
抽象类 有抽象方法的类一定是抽象类
修饰符 class 类名{
}
修饰符 abstract class 类名{
若普通子类要继承抽象父类,要么删除子类,要么进行重写
接口 所有方法都是抽象方法
修饰符 interface 接口名{
}
实现 implements
Java语言每个类可以实现多个接口
修饰符 class 类名 implements 接口1,接口2,... ...{
}
代码7.12
class Shape{}//图形类
class Square extends Shape{}//正方形类继承图形类
class Circular extends Shape{}//圆形类继承图形类
public class Qiltl {
public static void draw(Shape s) {//绘制方法
if(s instanceof Square) {//如果是正方形
System.out.println("绘制正方形");
}else if(s instanceof Circular) {//如果是圆形
System.out.println("绘制圆形");
}else {//如果是其他类型
System.out.println("绘制父类图形");
}
}
public static void main(String[] args) {
draw(new Shape());
draw(new Square());
draw(new Circular());
}
}
输出结果:
代码7.13
interface Paintable{
public void draw();
}
class Quadrangle{
public void doAnything() {
System.out.println("四边形提供的方法");
}
}
class Parallelogram extends Quadrangle implements Paintable{
public void draw() {
System.out.println("绘制平行四边形");
}
}
class Square extends Quadrangle implements Paintable{
public void draw() {
System.out.println("绘制正方形");
}
}
class Circular implements Paintable{
public void draw() {
System.out.println("绘制圆形");
}
}
public class Qiltm {
public static void main(String[] args) {
Square s = new Square();
s.draw();
s.doAnything();
Parallelogram p = new Parallelogram();
p.draw();
p.doAnything();
Circular c = new Circular();
c.draw();
}
}
输出结果