JavaSE之三大特性

/**
* 面对对象三大特性
* 1)封装:尽可能隐藏对象的内部实现细节,控制对象修改和访问的权限
* 2)继承:类与类之间特征和行为的一种赠与或获得
* 3)多态:父类引用指向子类对象,从而产生多种形态
*/
 1 public class Test2 {
 2     //1、封装
 3     public static void main(String[] args) {
 4         Cat cat = new Cat();
 5         cat.setAge(2);
 6         System.out.println(cat.getAge());
 7     }
 8 }
 9 class Cat{
10     String name;
11     private Integer age;   //private(私有属性):外界不可直接访问,只可通过set/get方法调用
12     String sex;
13     /*公共访问方法:set/get方法
14         作用:防止非法数据录入,保证数据的正常使用
15         set方法:使用方法参数实现赋值
16         get方法:使用方法返回值实现取值
17     */
18     public Integer getAge() {
19         return age;
20     }
21 
22     public void setAge(Integer age) {
23         this.age = age;
24     }
25 }

/*2、继承:将一方拥有的东西给与另一方
例如:动物与狗 动物是父类,狗是子类
父类可以有多个:狗<动物<生物<物质 狗既是动物的子类,也是生物的子类
Object类:一切类的父类。根源类(万物皆对象的概念)
父类的抽象:从多个子类中抽取共性的特征和行为;以实现复用
例如:鱼、狗、羊、牛都是动物的子类 共性的特征和行为:都有年龄,都会吃东西、睡觉等等
方法重写:当父类的方法无法满足子类时,子类可以定义与父类相同的方法进行重写
不可继承:构造方法、private(私有属性)修饰的属性或方法、不同包目录下的default修饰的属性或方法
*/
 1 class Test3{
 2     public static void main(String[] args) {
 3         B b= new B();
 4         b.print();
 5     }
 6 }
 7 class A{
 8     int value = 10;
 9 
10     public A(){}
11 }
12 //extends:继承   此处意思:B是A的子类
13 class B extends A{
14     int value = 20;
15     public void print() {
16         int value = 30;
17         System.out.println(value);
18         //this:类中的默认引用,代表当前实例
19         System.out.println(this.value);
20         //super:可直接访问从父类继承的属性和方法
21         System.out.println(super.value);
22     }
23     public B(){
24         //super:在构造方法的首行时,会调用父类的构造方法
25         super();
26     }
27 }

/**
* 3、多态:父类引用指向子类对象,从而产生多种形态
* 例:猫 既是一种猫科动物,也是一种动物,还是一种生物;从不同的角度看待同一种对象,关注点也不同
*
*/
 1 class TestConvert{
 2     public static void main(String[] args) {
 3         //向上转型(装箱):父类引用包含子类对象
 4         Animal am = new Sheep();
 5         //向下转型(拆箱):将父类引用的子类对象,强转为子类本身类型
 6         //Sheep sheep = (Sheep) am;
 7     }
 8 }
 9 class Animal{
10     public void eat(){
11         System.out.println("动物在吃东西...");
12     }
13 }
14 class Sheep extends Animal{
15     public void eat(){
16         System.out.println("羊在吃草...");
17     }
18 }

 

posted @ 2021-04-17 11:47  夜景&  阅读(93)  评论(0)    收藏  举报