面向对象的三大特征是什么?
作为走开发道路的我们,怎么能够不知道呢,然而一直只知道字面,从来都理解不了他的意思
封装:
把客观事务封装成抽象类,并且类可以把自己的数据和方法只让可信的对象或者类操作,对不可信的类进行数据进行隐藏(这一句在说访问权限【public, protected, , private】的设置)。
继承:
子对象可以继承父对象的属性和行为,亦即父对象拥有的属性和行为,其子对象也就拥有了这些属性和行。继承的关键字:extents
多态:
允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。
示例:
创建一个Animal类
public class Animal {
//种类名字字段
private static String kind;
public Animal(){
kind="动物";
}
public static String getKind() {
return kind;
}
public static void setKind(String kind) {
Animal.kind = kind;
}
//呼吸
public String breath(){
return kind+"正在呼吸。。。。";
}
//行走
public String go(){
return kind+"正在行走。。。。";
}
}
创建一个 Bird 类且继承Animal
public class Bird extends Animal {
//种类名字字段
private static String kind;
public Bird(){
Bird.setKind("小鸟");
}
//飞
public String go(){
return Bird.getKind()+"正在飞。。。。";
}
}
创建一个 Horse 类且继承Animal
public class Horse extends Animal {
//种类名字字段
private static String kind;
public Horse(){
Horse.setKind("马");
}
//奔跑
public String go(){
return Horse.getKind()+"正在奔跑。。。。";
}
}
测试类
public class Ex2 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);//Java输入的一种方法
Animal animal;
int a=0;
System.out.println("==================构造动物类==================");
try {
while (true){
System.out.println("请输入数字 1=鸟,2=马,3=鱼,其他=结束,\n(其他 结束程序:)");
a=scanner.nextInt();
if (a == 1) {
animal=new Bird();
}else if(a == 2){
animal=new Horse();
}else if(a == 3){
animal=new Fish();
}else {
scanner.close();
break;
}
System.out.println( animal.breath());
System.out.println(animal.go());
}
}catch (Exception e ){
System.out.println("异常处理====="+e.getMessage());
}finally {
System.out.println("==============================程序结束============");
}
}
解释:
多态的理解:
测试类中 ,先创建了一个Animal 类对象;在下面if条件中给animal赋值对象 animal=new Bird(); 则 animal就是Bird,拥有Bird的属性特征,进行Bird的方法操作。同理 animal=new Horse();也是如此。