<Java>面向对象三大特征

匿名对象:

创建对象的语法:

创建对象的语法:
	Person p1 = new Person();
	//=左侧在做对象的声明,开辟的是栈内存
	//=右侧,才是真正的创建对象
	//结果:内存中,创建了一个对象,对象的地址,赋值给p1。
匿名对象,就是只有=右侧,没有=左侧。
	new 构造方法(必要的参数);
匿名对象的用途:
    1、使用匿名对象,直接调用类的方法。
    2、匿名对象直接作为一个方法的参数。
    
注意点:
    匿名对象只能使用一次。随着它的创建而使用一次。(一次性的)
优势:
    1、使用后即销毁,就是被GC回收。
    2、代码书写方法,提高效率。

new 构造方法();
就是没有名字的对象。随着被创建而使用一次。(一次性)。
new 构造方法().方法名();
new 构造方法().方法名();

一,封装

A:封装性:“打包”,

​ 方法的封装。

​ 类的封装。

​ 属性:成员变量,给对象使用的。

​ 对象.属性—>赋值,取值

​ 对象.方法—>对象将方法调用

变量:直接写在类里:成员变量,描述这个类别的外部特征。使用变量
直接写在方法里:局部变量,存储数据。

如何对属性进行封装?访问权限修饰符:private default protected public
step1:使用private修饰属性
    使用private修饰的成员变量,方法,都限制在本类内访问
step2:提供setter方法,用于给属性赋值
    
step3:提供getter方法,用于取值
    属性的类型是boolean类型,isXXX(){}

二,继承

一个类B类,继承了另一个类A类。
A类:父类,基类,超类,SuperClass
B类:子类,派生类 ,SubClass

类的继承

  • 关键字:extends,词义:扩展的。描述两个类的关系:子类,父类。
  • 被继承的类:父类,根类,超类,基类,SuperClass
  • 继承的类:子类,派生类,SubClass

继承的语法

public class FatherClass{
	//属性
	//方法
}

public class ChildClass extends FatherClass{
    //新增的属性
    //方法:重写,新增
}

多态性

父类:Animal
	属性:name,age
	方法:eat(),sleep()
	
子类:Cat
	新增属性:color
	新增方法:catchMouse()
	重写方法:eat()
子类:Dog
	新增方法:lookDoor()
	重写方法:eat()

Animal a1 = new Animal();//a1能够访问的是父类的属性和父类的方法
Cat c1 = new Cat();//c1能够访问name,age,子类新增color。sleep(),子类重写eat,子类新增catchMouse()

Dog d1 = new Dog();//d1父类属性:name,age,方法:sleep(),子类重写eat(),子类新增lookDoor()

结论:对于子类对象,如果方法存在重写, 那么一定是调用重写之后的方法。

向上转型: 一个子类对象看成了父类类型。那么就失去了子类新增。
Animal a2 = new Cat();//
a2,本身是子类对象,但是看成父类类型。
那么能够访问父类的属性,不能访问子类的新增属性。
能够访问方法,以及子类重写的方法。
向下转型 格式:子类型 对象名 = (子类型)父类引用
动物类

public class Animal {
    public void eat() {
        System.out.println("动物吃东西");
    }
}

猫类

public class Cat extends Animal {
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }

    public void playGame() {
        System.out.println("猫捉迷藏");
    }
}

测试类

public class AnimalDemo {
    public static void main(String[] args) {
        //多态
        //向上转型
        Animal a = new Cat();
        a.eat();
//      a.playGame();


        //向下转型
        Cat c = (Cat)a;
        c.eat();
        c.playGame();
    }
}

d

重载,重写,this,super

比较

向上转型和向下转型

在这里插入图片描述
super

访问修饰符

访问修饰符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值