Java面向对象还是和C++不同的
Java多了一个重写功能,和重载不一样,重载的话是除了函数名不变,其他任意一个比如参数,返回值或者函数体变了就是重载。但是重写的参数和返回值的类型是不变的,里面内核变了就是了。重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!
当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。
多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。
接口呢,,以前没有这种概念,在Java里的话,接口感觉就像是一堆方法的声明放在了一个接口里,这些方法是抽象的,需要被别的类实现。如果一个类引入了某个接口,那这个类必须实现接口里面所有的函数。毕竟在接口里我只是告诉你有这个功能。
还有封装,以前感觉很厉害的感觉,其实一直都有知道,就是一些成员设置了访问权限啊,private某个元素这样不就不能直接通过用对象名引用了,得用类方法。
看个接口实例化的小代码。对了,一个类还可以实现多个接口。
package first;
import java.io.IOException;
public class HelloWorld
{
public static void main(String[] args) throws IOException
{
dog dog1 = new dog();
dog1.bark();
dog1.eat();
dog1.eat_milk();
}
}
interface Animal
{
void bark();
void eat();
}
interface manimal
{
void eat_milk();
}
class dog implements Animal,manimal
{
public void bark()
{
System.out.println("汪汪汪!");
}
public void eat()
{
System.out.println("我爱吃骨头");
}
public void eat_milk()
{
System.out.println("我要喝奶");
}
}
结果:
汪汪汪!
我爱吃骨头
我要喝奶
Process finished with exit code 0