个性化阅读
专注于IT技术分析

Java使用继承

本文概述

用Java继承是一种机制,一个对象获得所有父对象的属性和行为。这是一个重要的哦(面向对象编程系统)的一部分。

继承在Java背后的理念是,你可以创建新的类建立在现有类。当你从一个现有的类继承时,你可以重用父类的方法和字段。此外,你可以添加新的方法和字段在当前类也。

业代表的是一个关系也称为父子关系。

为什么在java中使用继承

  • 方法的重写(因此可以实现运行时多态性)。
  • 代码可重用性。

条款中使用继承

  • 类:类是一组对象的共同属性。这是一个模板或创建对象的蓝图。
  • 子类/子类:子类是一个类继承另一个类。它也被称为一个派生类,扩展类或子类。
  • 超类/父类:超类是类的一个子类继承的特性。它也被称为基类或父类。
  • 可重用性:如名称指定了可重用性是一种机制,使你更容易重用现有类的字段和方法当你创建一个新类。你可以使用相同的字段和方法已经在前面的类定义。

Java继承的语法

class Subclass-name extends Superclass-name
{
   //methods and fields
}

扩展关键字表明你正在一个新类,它来源于现有类。“扩展”的意义是增加的功能。

在术语的Java类,这是遗传的叫做父母或超类,和新类称为孩子或子类。


Java继承的例子

作为显示在上面的图中,程序员是子类和员工是超类。两个类之间的关系是程序员是一个员工。这意味着程序员是一个类型的员工。

class Employee{
 float salary=40000;
}
class Programmer extends Employee{
 int bonus=10000;
 public static void main(String args[]){
   Programmer p=new Programmer();
   System.out.println("Programmer salary is:"+p.salary);
   System.out.println("Bonus of Programmer is:"+p.bonus);
}
}
Programmer salary is:40000.0
 Bonus of programmer is:10000

在上面的例子中,程序员自己的类的对象可以访问字段,以及员工的类即代码可重用性。


在java类型的继承

类的基础上,可以有三种类型的继承java:单身,多层次、分级。

在java编程中,通过接口只支持多重继承和混合。稍后我们将了解接口。

注:不支持多重继承Java类。

当一个类继承多个类,它被称为多重继承。例如:


单继承的例子

文件:TestInheritance.java

class Animal{
void eat(){System.out.println("eating...");}
}
class Dog extends Animal{
void bark(){System.out.println("barking...");}
}
class TestInheritance{
public static void main(String args[]){
Dog d=new Dog();
d.bark();
d.eat();
}}

输出:

barking...
eating...

多级继承的例子

文件:TestInheritance2.java

class Animal{
void eat(){System.out.println("eating...");}
}
class Dog extends Animal{
void bark(){System.out.println("barking...");}
}
class BabyDog extends Dog{
void weep(){System.out.println("weeping...");}
}
class TestInheritance2{
public static void main(String args[]){
BabyDog d=new BabyDog();
d.weep();
d.bark();
d.eat();
}}

输出:

weeping...
barking...
eating...

层次继承的例子

文件:TestInheritance3.java

class Animal{
void eat(){System.out.println("eating...");}
}
class Dog extends Animal{
void bark(){System.out.println("barking...");}
}
class Cat extends Animal{
void meow(){System.out.println("meowing...");}
}
class TestInheritance3{
public static void main(String args[]){
Cat c=new Cat();
c.meow();
c.eat();
//c.bark();//C.T.Error
}}

输出:

meowing...
eating...

问为什么java不支持多重继承?

降低复杂性和简化语言,用java不支持多重继承。

考虑这样一个场景,a,B,C三个类。C类继承了A和B类。如果A和B类的方法和你一样从子类对象调用它,会有歧义A或B类的调用方法。

由于编译时错误比运行时错误,Java编译时错误如果你继承2呈现类。所以你是否有相同或不同的方法,会有编译时错误。

class A{
void msg(){System.out.println("Hello");}
}
class B{
void msg(){System.out.println("Welcome");}
}
class C extends A,B{//suppose if it were
 
 public static void main(String args[]){
   C obj=new C();
   obj.msg();//Now which msg() method would be invoked?
}
}
Compile Time Error
赞(0)
未经允许不得转载:srcmini » Java使用继承

评论 抢沙发

评论前必须登录!