Java之多态内部类
多态:继承实现的基础,Java中允许使用一个父类类型的变量来引用一个子类类型的对象,根据被引用子类对象特征不同,得到不同的运行结果。
内部类:在类里面定义的类,内部类是外部类的一个成员,java内部类可分为
1.成员内部类
2.方法内部类
3.匿名内部类:没有名字的类
匿名内部类例子代码
package cn.text;
interface Animal{
public abstract void shout();//定义抽象方法shout();
1
}
public class Example1 {
public static void main(String[] args) {
animalShout(new Animal() {
public void shout(){
System.out.println("喵喵");
}
});
}
//定义一个静态方法animailShout()
public static void animalShout(Animal an) {
an.shout();//调用传入对象an的Shout()方法
}
普通的方法
package cn.text;
interface Animal{
public abstract void shout();//定义抽象方法shout();
}
public class Example {
public static void main(String[] args) {
//定义一个内部类Cat实现Animal接口
class Cat implements Animal{
//实现shout方法
public void shout() {
System.out.println("喵喵。。。");
}
}
animalShout(new Cat());//调用animalShout() 方法并传入Cat
}
//定义一个静态方法animailShout()
public static void animalShout(Animal an) {
an.shout();//调用传入对象an的Shout()方法
}
}
多态性代码
package cn.text;
/
对象的多态性
父类或接口的引用=new 子类的对象
/
//定义一接口Animal
interface Animal{
public abstract void shout();
}
//定义Cat类实现接口
class Cat implements Animal{
public void shout() {
System.out.println(“喵喵”);
}
}
//定义dog类实现animal接口
class Dog implements Animal{
public void shout() {
System.out.println(“旺旺”);
}
}
//定义测试类,多态
public class Example2 {
public static void main(String[] args) {
Animal an1=new Cat();//创建Cat对象,使用an1引用
Animal an2=new Dog();
animalShout(an1);
animalShout(an2);
}
public static void animalShout(Animal an) {
an.shout();
}
}
object类类层次结构的根类,每个类都直接或间接继承自此类,所有对象都实现了这个类的方法
equals ------------指示其他某个对象是否与此对象相等
getClass---------返回次object的运行时类
hashClass------返回该对象的哈希码值
toStirng----------返回该对象字符串表示