黑马程序员------- 多态-------

多态(polymorphic)
定义:某一类事物的多种存在形态。
动态绑定:是指“在执行期间”(而非编译期间)判断所引用对象的实际类型,根据实际类型调用相应的方法。
例:动物中猫,狗。
猫这个对象对应的类型是猫类型
猫 x = new 猫();
同时猫也是动物中的一种,也可以把猫称为动物。
动物  y = new 猫();
动物是猫和狗具体事物中抽取出来的父类型。
父类型引用指向了子类对象。
练习实例:
abstract class Animal {
abstract void eat();
}
class EatSomething {
void startEat(Animal a){
 a.eat();
 }
}
class Cat extends Animal {
 void eat(){
 System.out.println("鱼");
 }
 void catchMouse(){
 System.out.println("抓老鼠");
 }
public static void main(String[] args) {
Cat c = new Cat();
c.eat();
}
多态三个必要条件:
父类引用指向子类对象
要有覆盖操作,也就是重写
需要存在继承或者实现关系
Object(基类)
是所有类的直接或者间接父类,该类中定义的肯定是所有对象都具备的共性功能
object类中的方法
equals(){}//比较
toString(){}//转成字符串
hashCode(){}//对象的哈希地址值
getClass(){}//返回运行时类
finalize(){}//当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。System.gc()调用垃圾回收方法
内部类
访问特点:
内部类可以直接访问外部类中的成员,包括私有成员。//外部类名.this
而外部类要访问内部类中的成员必须要建立内部类的对象。
内部类分类及共性
1,成员内部类
2,静态内部类
3,局部内部类
4,匿名内部类
共性:
A、内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号。
B、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的。
内部类实例:
package com.itheima.test1;


public class Demo_outerclass {


public static void main(String[] args) {
Outer3.method().show();
}


}
interface Inter3{
void show();
}
class Outer3{
public static Inter3 method(){
return new Inter3() {
public void show() {
System.out.println("aaaa");
}
};
}

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值