Java的继承、封装、多态

1、继承:
       概念:继承是类与类的一种关系,子类拥有父类的所有属性和方法(除了private修饰的属性不能拥有)从而实现了实现代码的复用。
        关键词:extends.
        特点:单继承(接口可以实现多继承)

class animal{
    public animal() {  
    }
}
 
class cat extends animal{
    public cat() {
    }
}

2、封装
       概念:隐藏实现细节,提供访问接口。将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问,提高对象的易用性和安全性。
       常见的实现方式就是:getter、setter.

/* 文件名: Demo.java */
public class Demo{
 private int age;
   private String name;
   private String sex;
   
 
   public int getAge(){
      return age;
   }
 
   public String getName(){
      return name;
   }
 
   public String getSex(){
      return sex;
   }
 
   public void setAge( int newAge){
      age = newAge;
   }
 
   public void setName(String newName){
      name = newName;
   }
 
   public void setSex( String newSex){
      sex= newSex;
   }
}

       用private 修改属性的可见性来限制对属性的访问。

3、多态:
       概念:指允许不同类的对象对同一指令做出响应。即同一指令可以根据发送对象的不同而采用多种不同的行为方式。

/* 文件名: Demo.java */
public class Demo{
    public static void main(String[] args) {
      show(new Women());  
      show(new Man());  
      Person a = new Women();  // 向上转型  
      a.like();              
      Women w = (Women) a;    // 向下转型  
      w.shop();     
  }  
            
    public static void show(Person a)  {
      a.like();  
        // 类型判断
        if (a instanceof Women)  {   
            Women w = (Women) a;  
            w.shop();  
        } else if (a instanceof Man) {
            Man w = (Man) a;  
            w.shop();  
        }  
    }  
}
 
abstract class Person{  
    abstract void like();  
}  
  
class Women extends Person{  
    public void like() {  
        System.out.println("衣服");  
    }  
    public void shop() {  
        System.out.println("美食");  
    }  
}  
  
class Man extends Person{  
    public void like() {  
        System.out.println("电子产品");  
    }  
    public void shop() {  
        System.out.println("篮球");  
    }  
}

结果:
在这里插入图片描述

注:Java中的多态主要指引用多态和方法多态。
        引用多态:父类引用可以指向本类对象,也可指向子类对象。引用多态的强大主要体现在调用属性、方法时,可以根据引用具体指向的对象去调用,例如:子类中重写了父类方法,即子类继承父类中的方法,并且想在原有的基础上作一定的扩展。
       方法多态:子类中可以重写父类的方法,在调用方法时根据引用指向的子类对象决定调用哪个具体的方法。方法多态的强大主要体现在可以根据调用时参数的不同,而自主匹配调用的方法,例如:重载(在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可)。

发布了36 篇原创文章 · 获赞 130 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_42881768/article/details/104672206