暂无权限

加入尚新途,才有权限看这些视频哦!

点击前往
×
问答
南风入弦
1楼

为什么第8行不是volant.而是Volant.image.png

尚新途

因为那个属性是静态的,可以用类名调用

咸蛋超人
2楼

感觉接口和抽象用法很类似,实际应用中怎么选呢?

尚新途

抽象类是对一种事物的抽象,即对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。举个简单的例子,飞机和鸟是不同类的事物,但是它们都有一个共性,就是都会飞。那么在设计的时候,可以将飞机设计为一个类Airplane,将鸟设计为一个类Bird,但是不能将 飞行 这个特性也设计为类,因此它只是一个行为特性,并不是对一类事物的抽象描述。此时可以将 飞行 设计为一个接口Fly,包含方法fly( ),然后Airplane和Bird分别根据自己的需要实现Fly这个接口。然后至于有不同种类的飞机,比如战斗机、民用飞机等直接继承Airplane即可,对于鸟也是类似的,不同种类的鸟直接继承Bird类即可。从这里可以看出,继承是一个 "是不是"的关系,而 接口 实现则是 "有没有"的关系。如果一个类继承了某个抽象类,则子类必定是抽象类的种类,而接口实现则是有没有、具备不具备的关系,比如鸟是否能飞(或者是否具备飞行这个特点),能飞行则可以实现这个接口,不能飞行就不实现这个接口。


是娇妹呀~?
3楼
下载好之后重新点击这个就会出现下载的页面,没有所谓的卸载

image.png

尚新途

只有安装了之后,再次点击这个才会有卸载。

。。。...
4楼

这里的错误在哪里?333333333.png

尚新途

实现接口的方法,需要使用pubic去修饰

。。。...
5楼

1111111111.png这里出现了什么问题?

尚新途

1664515379(1).png

如果这个类里有一个方法是抽象方法,那么这个类必须是抽象类,完后方法是被abstract修饰后,是不能有方法体的,方法题就是方法的这对儿大括号

外桑
6楼

老师,这个fly和helpOther方法明明是同一级别的方法,为什么有fly能调,helpOther不能调?

image.png

尚新途

因为a2的类型时Volant类型,这个类中没有helpOther这个方法。

逍遥书生
7楼

接口内不能有任何方法的实现,那么接口内用于声明引用变量类型的意义何在?


尚新途

image.png

接口里面的变量默认就是被final修饰的,在接口里面去定义,可以定义一些常量,比如圆周率,比如你自己定义一个方法,就是每个月的奖金,这个也是一个定值,不允许别的对象去修改的值就可以的定义进接口里

zhujia
8楼

image.png

老师能解答下这句话吗  父类引用指向的子类对象  这句话第一次出现是在类的继承里面的转型章节 最好能结合两个一起讲下  麻烦了谢谢


尚新途

这个就是Java多态的一个应用,用父类类型直接创建子类对象,实际类型是具体的子类对象,可以降低代码的耦合

嘎嘣脆
9楼

强制转型怎么出错了

image.png

尚新途

1652268527(1).png

不应该这样转

1652268678(1).png

这样去转,把一个Volant类型的转换成Angle类型的

文斗带师
10楼

image.png

老师,我这咋不生成新的接口文件啊?

尚新途

点击这个包,右键创建接口,就会生成一个新的接口类。

别动我肥牛
11楼

父类引用子类对象什么意思啊............

尚新途

父类 a = 子类对象();

父类引用指向子类对象,a是父类型的引用,= 是指向 


image.png

别动我肥牛
12楼

重写的方法代码上面一行的@Override这个是必须在代码里的么?就是我自己手敲重写方法的话,这个也要写上去么?

尚新途

这个不需要的,这是软件自动给加的,加不加都不影响的,手写的时候不需要写的

douzhi166
13楼

用类实现接口的时候, 类重写方法 是抽象类吗 就是

省略了abstract

尚新途

因为抽象方法必须被实现,所以接口方法是抽象的,是忽略的

尚新途

接口的方法是抽象的,

但是实现接口的类 对应重写的方法不是抽象的是吗 

尚新途

实现的类因为不是抽象的类,所以必须重写这个方法

重写之后不是抽象方法的

微信用户
14楼

A1B4AS$VF~S}84SF3J748ES.png

请问一下,这一块有什么用,我删除这一块之后程序也能运行。

尚新途

框画错了 不包括abstract那一段

尚新途

get和set方法,封装的特性,set方法赋值,get方法取值。

KiKi
15楼
public static void main(String[] args){
    Volant m1 = new SuperMan();
    m1.fly();
    Honest h = (Honest) m1;
    h.helpOther();
}

老师,我想问下这个强制转换类型和继承里的是不是不太一样,它们的区别是什么?继承是要看实例化的是哪一个类么,接口的话只要实例化一个对象了,这个对象实现的接口类型都可以进行强转么?

尚新途

这里的强转和继承里的一样

强转需要满足被强转的类在运行时为强转的类型

自我检测(5S)