java继承和多态举例

public class Test1 {

    public static void main(String[] args) {
        System.out.println(new Dog().name);//狗
        new Dog().jiao();//狗叫
        System.out.println(new Cat().name);//猫
        new Cat().jiao();//猫叫
        Animal d = new Dog();
        Animal c = new Cat();
        System.out.println(d.name);//动物
        System.out.println(c.name);//动物
        d.jiao();//狗叫
        c.jiao();//猫叫

    }

}
class Animal{
    String name = new String("动物");
    public void jiao(){
        System.out.println("动物叫");
    }
}
class Dog extends Animal{
    String name = "狗";
    public void jiao(){
        System.out.println("狗叫");
    }
}
class Cat extends Animal{
    String name ="猫";
    public void jiao(){
        System.out.println("猫叫");
    }
}

总结:

多态实现条件:1、继承 2、方法重写 3、父类申明子类对象

多态实现的机制:动态绑定机制。方法看对象,属性看声明

时间: 2024-08-07 08:39:13

java继承和多态举例的相关文章

java继承和多态

java方法直接调用原理推测 有错误还望指正 当直接调用某对象的某方法时  会更具该对象获取到类信息对象   在从类信息对象中找到该方法 没找到 获取父类信息对象继续查找 找到了执行  jdk距离实现是通过反射还是其它? 如果按以上原理    以下情况解释不通 创建一子类对象  赋值给一父类指针变量  通过父类指针变量掉run方法   run方法在父类或子类中为私有  这种情况调用的是父类的run方法 并非子类的run方法 反射jar包 package extend; import org.ju

Java继承,多态,组合应用

继承:  面向对象的三大特征之一:    是类和类之间的一种拓展关系,是一种从一般到特殊的关系;    格式: sub   extends Super,  我们把sub称为子类或者拓展类, 把super称为父类或者基类(超类)   泛化: 把子类中的共性抽取到父类的过程; 特化: 子类在父类的基础之上,拓展自己特有的状态和特征;    Object: 是所有类的直接父类后间接父类;      class  Student{} 等价于  class  Student extends Object{

Java 继承和多态

                                                    Java  继承和多态 Java 继承 继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为. 生活中的继承: 兔子和羊属于食草动物类,狮子和豹属于食肉动物类. 食草动物和食肉动物又是属于动物类. 所以继承需要符合的关系是:is-a,父

Java 继承、多态与类的复用

摘要: 本文结合Java的类的复用对面向对象两大特征继承和多态进行了全面的介绍. 首先,我们介绍了继承的实质和意义,并探讨了继承,组合和代理在类的复用方面的异同.紧接着,我们依据继承引入了多态.介绍了它的实现机制和详细应用.此外,为了更好地理解继承和多态.我们对final关键字进行了全面的介绍. 在此基础上.我们介绍了Java中类的载入及初始化顺序.最后.我们对面向对象设计中三个十分重要的概念–重载.覆盖与隐藏进行了详细的说明. 要点: 继承 组合,继承,代理 多态 final 关键字 类载入及

非专业码农 JAVA学习笔记 4 java继承和多态

继承和多态 (一)继承的基本概念 子类 extends 父类(超类)(通过继承使用父类公用的变量,方法和属性等非private定义的) (二)类的继承 1.派生子类-获取父类非private定义的方法属性和相关的变量 2.域的隐藏和继承 (1)域的继承-继承所有非私有化的域 (2)域的隐藏-定义跟父类相同的变量,父类的变量就会在子类隐藏,但,子类执行自己的方法还是用的是子类的变量,执行继承父类的方法才自动用上隐藏的域 3.方法的继承和覆盖 (1)方法的继承-继承父类非私有的方法 (2)方法的覆盖

关于java继承、多态、抽象类、接口等性质的学习(1)

最近几日把JAVA编程思想翻了翻,顿时发现以前看的所谓XXX从入门到精通系列讲的简直不能看,只能是当做入门中的入门书吧. 为了日后不会忘记,把一些想法写下来. 关于继承和多态 我想继承是面向对象语言不可少的一部分吧,引用JAVA编程思想的一句话:“当创建一个类时,总是在继承”.继承通过extends关键字实现,继承实现后,基类中所有的域和方法都可以得到. class First{ private String s = "extend"; First(){ } public void t

JAVA基础整理-50.Java继承和多态

Java类的封装 封装就是将对象的属性和方法相结合,通过方法将对象的属性和实现细节保护起来,实现对象的属性隐藏. Java类的继承:Java简单的继承及单继承和多继承的区别 简单继承 注意:类的继承并不改变类成员的访问权限.也就是说,如果父类的成员是公有的.被保护的或默认的,它的子类仍具有相应的这些特性. extends 关键字直接跟在子类名之后,其后面是该类要继承的父类名称.例如: public class Student extends Person{} 注意:如果在父类中存在有参的构造方法

java继承和多态的学习

面向对象的三大特征:封装性.继承性.多态性. 继承是多态的前提,如果没有继承就没有多态 继承主要解决的问题就是:共性抽取 继承关系当中的特点:1.子类可以拥有父类的内容2.子类还可以拥有自己专有的内容. 父类也可以叫基类.超类.子类还可以拥有自己专有的内容. 在父子类的继承关系中,如果成员变量重名,则创建子类对象时,访问有两种方式: 直接通过子类对象访问成员变量:等号左边是谁,就先用谁,没有则向上找. 间接通过成员方法访问成员变量:该方法属于谁,就优先用谁,没有则向上找. 注意事项:无论是成员方

JAVA继承、多态与接口

一.继承1.继承的优点 代码的重用性 子类可以扩展父类的属性和方法 设计应用程序变得更加简单 父类的属性和方法可用于子类2.如何判断类具有继承关系 类和类的关系 1)has-a(组合) 2)is-a(继承)3.单继承和多继承 单根性: 在java中,一个类只能有一个父类 传递性: 子类可以将父类的属性和方法传递给自己的子类4.所有类的根类都是Object(超类,基类)5.方法重写(以后多态的使用要用到)@Override//注解 1)子类的方法的返回值类型.方法名和形式参数列表, 必须和父类中的