面对对象的特性之 封装
在面对对象编程中,对象内部的操作是一般要和外部独立的,相当于一个黑盒,以减少错误的访问导致错误。那么就需要访问权限控制机制,比如有些成员变量和方法不想被外部使用,那么应当用private关键字修饰。在Java中有这么几个关键字修饰方法和变量:
public 共有访问
protected 子类访问权限
default(不加修饰) 默认包内访问
private 只有自己访问
继承性
继承是指一个类的属性和方法可以继承自一个父类(Java只能单继承,就是说只能继承自一个类,不像C++可以继承多个)不包括private修饰的属性和方法(构造函数也不会继承)。
子类可以重写父类的方法,这是方法覆盖,在覆盖了重父类继承的方法后如果再想调用父类的这个方法可以使用 super.方法名来调用,super()是调用父类的构造方法。
package animal;
/**
* 哈士奇
*/
public class Husky extends Animal implements Dog{
/**
* 实现Annimal 的虚方法
*/
@Override
public void move() {
System.out.println("二哈走了过来");
}
/**
* 实现Dog接口的方法
*/
@Override
public void bark() {
System.out.println("二哈在说你好");
}
/**
* 自己的方法
*/
public void jump(){
System.out.println("二哈在跳跃");
}
}
多态
对于多态的理解是对象表现的具体行为由构造对象的类决定,而不是以引用对象的类型决定,对于一个父类引用而言,它引用不同的子类对象,调用这些对象的方法可能是不一样的。在之前的工程中新建一个类
package animal;
public class Pig extends Animal{
@Override
public void move() {
System.out.println("pig is moving");
}
}
在main方法中写入
Animal animal1 = new Husky();
Animal annimal2 = new Pig();
animal1.move();
animal2.move();
结果是:
二哈走了过来
pig is moving
网友评论