- package object;
- public class Test11 {
- public static void main(String[] args) {
- Ball ball = new Ball("PingPang");
- ball.play();
- }
- }
- interface Playable {
- void play();
- }
- interface Bounceable {
- void play();
- }
- interface Rollable extends Playable, Bounceable {
- // Ball ball = new Ball("PingPang");//首先来说接口里面定义变量和方法,不能创建对象,即使是用的是Ball这个类创建也不可以
- }
- class Ball implements Rollable {
- private String name;
- public String getName() {
- return name;
- }
- public Ball(String name) {
- this.name = name;
- }
- public void play() {
- //x = 20;
- //Ball ball = new Ball("PingPang");//这样才符合你的初衷,不报错,但是却不能达到你的要求,主要封装方法,不是用来创建对象的,定义在主函数比较合适
- // ball = new Ball("Football");//这个ball变量在play这个方法区根本没有定义,只是在Rollable定义了,但是和着没关系,因为作用域不同,同理定义在主函数
- //System.out.println(ball.getName());
- }
- }
- 我改了改,这样可以运行,没有问题,,在学基础的时候,是调用者和执行者不太分,但是两者有很明显的区别,在后面的时候会衍生出客户端,服务器端的,所以谁调用的一定要分清楚,主函数调用其实就是模拟了客户端,而本封装的方法体也就类似于将来的服务器端,像new对象,不是方法要做的事儿
复制代码 |