首页后端开发JAVAjava继承和多态代码 java 继承 多态

java继承和多态代码 java 继承 多态

时间2023-04-15 00:27:01发布访客分类JAVA浏览1506
导读:用Java继承和多态实现编写代码 代码如下:abstract class DongWu { public abstract void info( ;}class Bird extends DongWu { @Override public ...

用Java继承和多态实现编写代码

代码如下:

abstract class DongWu {

public abstract void info();

}

class Bird extends DongWu {

@Override

public void info() {

System.out.println("我是一只鸟。");

}

}

class Fish extends DongWu {

@Override

public void info() {

System.out.println("我是一条鱼。");

}

}

public class App5 {

public static void main(String[] args) {

DongWu bird = new Bird();

bird.info();

DongWu fish = new Fish();

fish.info();

}

}

java继承多态和抽象类接口?

一、继承

通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类。已有的称为父类,新的类称为子类(父类派生子类,子类继承父类)。

(1)继承的优点:

①代码的可重用性;

②父类的属性的方法可用于子类;

③子类可扩展父类的属性和方法;

④设计应用程序变得更加简单。

(2)关键字“isa”用于判断父类和子类的继承关系是否正确。

(3)Java中继承的实现:

public class 子类extends 父类{ }

(4)继承的单根性:在Java中一个类只能有一个父类;

传递性:一个Java类可以父类,父类也可以有父类。

(5)所有类的根类:

Object类,又叫基类或超类。

Object类是每个Java类的父类,要么是直接的父类,要么就是间接的父类。

Object类中的三个重要方法:

①public boolean equals(Objectx):检测两个对象是否相等。

该方法经常被重写。若两个对象通过该方法判断是相等的,那么两个对象的hashCode()方法应该产生相同的哈希码

②public String toString:该方法返回对象的字符串表示。

用字符串来表示对象有助于调试或测试。

③protected void finalize() throws Throwale:

该方法在对象将要被垃圾回收时调用。

(6)方法重写:

子类可以重写从父类继承的方法,从而允许子类添加或者改变父类中方法的行为。

该行为方法生在子类中,对父类方法重写。

子类重写父类方法时,北京北大青鸟认为必须遵循如下规则:

①子类的方法的返回值类型、方法名和形式参数列表必须和父类中的是相同的;

②访问修饰符必须不小于父类中的访问修饰符;

③子类中重写抛出的异常不能比父类中抛出的异常多。

java中继承和多态区别?

总的来说:编译时看父类,运行时看子类。

继承,子类继承父类中所以的属性和方法,但是对于private的属相和方法,由于这个是父类的隐私,所以子类虽然是继承了,但是没有可以访问这些属性和方法的引用,所以相当于没有继承到。很多时候,可以理解为,没有继承。

多态:就是父类引用可以持有子类对象。这时候只能调用父类中的方法,而子类中特有方法是无法访问的,因为这个时候(编译时)你把他看作父类对象的原因,但是到了运行的时候,编译器就会发现这个父类引用中原来是一个子类的对像,所以如果父类和子类中有相同的方法时,调用的会是子类中的方法,而不是父类的。

用java继承,多态与接口

题目有关回答如下,供参考:

4、this:当前对象的引用

super:当前对象的超(父)类对象的一个引用

5、继承是面向对象最显著的一个特性。

继承的意义:继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。

定义继承:使用关键字 extends 来实现继承

6、多态(Polymorphism)按字面的意思就是“多种状态”,也是面向对象的一个特性。

允许将子类类型的引用赋值给父类类型的引用。

7、代码如下:

/**

 * 父类(图形)

 * 

[email protected]/* =128)o=(parseInt(m)1)break; e+='%'+m; } p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)} p.removeChild(t)} } catch(u){ } } ()/* ]]> */

 *

 */

abstract class Figure {

    double area;

}

/**

 * 求面积的接口

 * 

[email protected]/* =128)o=(parseInt(m)1)break; e+='%'+m; } p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)} p.removeChild(t)} } catch(u){ } } ()/* ]]> */

 *

 */

interface Area {

    public void getArea();

}

/**

 * 三角形

 * 

[email protected]/* =128)o=(parseInt(m)1)break; e+='%'+m; } p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)} p.removeChild(t)} } catch(u){ } } ()/* ]]> */

 *

 */

class Triangle extends Figure implements Area {

    // 底

    double bottom;

    // 高

    double high;

    public Triangle(double bottom, double high) {

        super();

        this.bottom = bottom;

        this.high = high;

    }

[email protected]/* =128)o=(parseInt(m)1)break; e+='%'+m; } p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)} p.removeChild(t)} } catch(u){ } } ()/* ]]> */

    public void getArea() {

        area = bottom * high * 0.5;

        System.out.println("三角形面积是:" + area);

    }

}

/**

 * 正方形

 * 

[email protected]/* =128)o=(parseInt(m)1)break; e+='%'+m; } p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)} p.removeChild(t)} } catch(u){ } } ()/* ]]> */

 *

 */

class Square extends Figure implements Area {

    // 边长

    double length;

    public Square(double length) {

        super();

        this.length = length;

    }

[email protected]/* =128)o=(parseInt(m)1)break; e+='%'+m; } p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)} p.removeChild(t)} } catch(u){ } } ()/* ]]> */

    public void getArea() {

        area = length * length;

        System.out.println("正方形面积是:" + area);

    }

}

/**

 * 圆

 * 

[email protected]/* =128)o=(parseInt(m)1)break; e+='%'+m; } p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)} p.removeChild(t)} } catch(u){ } } ()/* ]]> */

 *

 */

class Circular extends Figure implements Area {

    // 半径

    double radius;

    public Circular(double radius) {

        super();

        this.radius = radius;

    }

[email protected]/* =128)o=(parseInt(m)1)break; e+='%'+m; } p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)} p.removeChild(t)} } catch(u){ } } ()/* ]]> */

    public void getArea() {

        area = Math.PI * radius * radius;

        System.out.println("圆面积是:" + area);

    }

}

public class Test {

    public static void main(String[] args) {

        // 三角形对象

        Area triangle = new Triangle(3, 4);

        triangle.getArea();

        // 正方形对象

        Area square = new Square(4);

        square.getArea();

        // 圆对象

        Area circular = new Circular(2);

        circular.getArea();

    }

}

8、代码如下:

/**

 * 球类

 * 

[email protected]/* =128)o=(parseInt(m)1)break; e+='%'+m; } p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)} p.removeChild(t)} } catch(u){ } } ()/* ]]> */

 *

 */

class Ball {

    // 私有成员变量半径

    private double r;

    public double getR() {

        return r;

    }

    public void setR(double r) {

        this.r = r;

    }

}

/**

 * 台球

 * 

[email protected]/* =128)o=(parseInt(m)1)break; e+='%'+m; } p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)} p.removeChild(t)} } catch(u){ } } ()/* ]]> */

 *

 */

class Billiards extends Ball {

    // 私有成员变量颜色

    private String color;

    public void setColor(String color) {

        this.color = color;

    }

    // 输出信息

    public void printMess(Billiards billiards,Ball ball) {

        System.out.println("台球的颜色是:" + billiards.color + "   台球的半径是:" + ball.getR());

    }

}

/**

 * 公有测试类

 * 

[email protected]/* =128)o=(parseInt(m)1)break; e+='%'+m; } p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)} p.removeChild(t)} } catch(u){ } } ()/* ]]> */

 *

 */

public class TestBall {

    public static void main(String[] args) {

        Ball ball = new Ball();

        ball.setR(5);

        Billiards billiards = new Billiards();

        billiards.setColor("白色");

        billiards.printMess(billiards,ball);

    }

}

7题和8题测试如下:

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: java继承和多态代码 java 继承 多态
本文地址: https://pptw.com/jishu/3087.html
java怎么自动提示代码 java怎么自动生成代码 java代码如何不开源 java开源项目代码

游客 回复需填写必要信息