第七章总结(下品)

文章讲述了Java编程中多态的概念,如何利用多态实现根据不同对象绘制不同图形的功能。同时,介绍了抽象类和接口,包括它们的定义和用法,以及如何通过接口实现多重继承的效果。示例代码展示了如何创建接口和实现接口的类,以实现图形的绘制功能。
摘要由CSDN通过智能技术生成

7.7多态

利用多态可以使程序具有良好的扩展性,并可以对所以类对象进行通用的处理。

假如现在要编写一个绘制图形的方法draw(),如果转入正方形对象就绘制正方形,如果转入圆形对象就绘制圆形,这种场景可以使用重载来实现:

public void draw(Square s){    //绘制正方形的方法
}
public void draw(Cicular){     //绘制圆形的方法
}

 

class Shape{}                                //圆形类
class Square extends Shape{}                    //正方形类继承图形类
class Circular extends Shape{}                 //圆形类继承圆形类
 
public class Demo6{
    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 Squsre());
        draw(new Circular());
    }
}

 

 

7.8抽象类与接口

通常可以说四边形具有4条边,或者更具体一点,平行四边形是具有对边平行且相等特征性的特殊四边形,等腰三角形.

7.8.1抽象类

仅用来描述特征且极具抽象性类,在java中被定义为抽象类

抽象类与方法使用abstract关键词定义

抽象方法语法:修饰符 abstract 返回参数 方法名 (传入参数);

与传统方法不同,抽象方法没有方法体,有抽象方法的类一定是抽象类,当父类是抽象类,有抽象方法时,它的子类要么重写父类的抽象方法,要么定义为抽象类(抽象方法重写之后就是普通方法了)

抽象类语法:修饰符 abstract class 类名{}

7.8.2接口

接口是抽象类的延伸,可以将它看作是纯粹的抽象类,接口中所有的方法都是抽象方法·,由于java语言每个类只能继承一个父类,因此接口的作用就凸显出来,一个类可以实现多个接口,可以看作一个类可以拥有多个父类(便于理解并不是官方意思)

接口使用interface关键词定义

接口语法:修饰符 interface 接口名

实现 implements

java语言每个类可以实现多个接口

实现语法:修饰符 class 类名 implements 接口1,接口2,...{}

例题7.13:


interface Paintable1{		//新建一个接口
	public void draw();		//绘制对象方法
}
//四边形类
class Quadrangle1{
	public void doAnything() {
		System.out.println("四边形提供的方法");
	}
}
//平行四边形类,继承四边形类,,并实现了绘制接口
class Parallelogram1 extends Quadrangle1 implements Paintable1{
	public void draw() {
		System.out.println("绘制平行四边形");
	}
}
//正方形类,继承四边形类,,并实现了绘制接口
class Square1 extends Quadrangle1 implements Paintable1{
	public void draw() {
		System.out.println("绘制正方形");
	}
}
//圆形类,仅实现了绘制接口
class Circular1 implements Paintable1{
	public void draw() {
		System.out.println("绘制圆形");
	}
}
public class liti7_13 {
 
	public static void main(String[] args) {
		
		Square1 s1 = new Square1();
		s1.draw();
		s1.doAnything();
		Parallelogram1 p = new Parallelogram1();
		p.draw();
		p.doAnything();
		Circular1 c = new Circular1();
		c.draw();
	}
 
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值