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

用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、代码如下:

/**

* 父类(图形)

* @author qd

*

*/

abstract class Figure {

double area;

}

/**

* 求面积的接口

* @author qd

*

*/

interface Area {

public void getArea();

}

/**

* 三角形

* @author qd

*

*/

class Triangle extends Figure implements Area {

// 底

double bottom;

// 高

double high;

public Triangle(double bottom, double high) {

super();

this.bottom = bottom;

this.high = high;

}

@Override

public void getArea() {

area = bottom * high * 0.5;

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

}

}

/**

* 正方形

* @author qd

*

*/

class Square extends Figure implements Area {

// 边长

double length;

public Square(double length) {

super();

this.length = length;

}

@Override

public void getArea() {

area = length * length;

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

}

}

/**

* 圆

* @author qd

*

*/

class Circular extends Figure implements Area {

// 半径

double radius;

public Circular(double radius) {

super();

this.radius = radius;

}

@Override

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、代码如下:

/**

* 球类

* @author qd

*

*/

class Ball {

// 私有成员变量半径

private double r;

public double getR() {

return r;

}

public void setR(double r) {

this.r = r;

}

}

/**

* 台球

* @author qd

*

*/

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());

}

}

/**

* 公有测试类

* @author qd

*

*/

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题测试如下:

网站题目:java继承和多态代码 java 继承 多态
分享网址:/article48/ddiphep.html

成都网站建设公司_创新互联,为您提供网站制作网站建设手机网站建设网站设计云服务器移动网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设