首页 > 其他分享 >类和继承

类和继承

时间:2023-09-26 21:32:18浏览次数:28  
标签:String 继承 Object System println public out

今日份学习类的继承,Object类和Object类中的三个重要方法(getClass()方法,toString()方法,equals()方法)。

  • 类的继承

      继承使整个程序架构具有一定的弹性,它不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性。
       在JAVA语言中,一个类继承另一个类需要使用关键字extends。
【例】class Child extends Parent{}
       子类在继承父类之后可以调用父类创建好的属性和方法。JAVA虽然不允许同时继承两个父类,但可以有多继承关系。(祖父>父>儿子>孙子)
【例】在电话的基础上衍生出手机类
class Telephone{
String button="button:0~9";
void call() {
System.out.println("开始拨打电话");
}
}

class Mobile extends Telephone{
String screen="screen:液晶屏";
}
public class Demo {

public static void main(String[] args) {
Mobile motto=new Mobile();
System.out.println(motto.button);
System.out.println(motto.screen);
motto.call();
}

}
结果为:

  • Object类

   在Java中所有的类都直接或间接的继承了java.lang.Object类。

   Object类是所有类的父类,是Java类层中的最高层类。Java中的每个类都源自于java.lang.Object类,自定义的类也都继承于Object类。由于所有类都是Object类的子类,所以在定义类时可省略extends Object。

   在Object类中,主要包括clone()、finalize()、toString()等方法。由于所有的类都是Object类的子类,所以所有类都可以重写Object类的方法。

(Object类中的getClass()、notify()、notifyAll()、wait()等方法不能被重写,这些方法被定义为final类。)

其中,Object类中的几个重要方法为:

  1. getClass()返回对象执行时的Class实例。
    getClass().getname();
    可以将getClass()方法与toString()方法联合使用。
  2. toString()toString()方法的功能是将一个对象返回为字符串的形式,会返回一个Strmg实例。
    当这个类转换为字符串或与字符串连接时,将自动调用重写的toString()方法。
    【例】让学生自我介绍
    public class Student {
    String name;
    int age;

    public Student(String name,int age) {
    this.name=name;
    this.age=age;
    }

    public String toString() {
    return "我叫"+name+",今年"+age+"岁。";

    }

    public static void main(String[] args) {
    Student s1=new Student("李一",16);
    System.out.println(s1);
    Student s2=new Student("李二",9);
    System.out.println(s2);

    }

    }
    结果为:
  3. equals()(java中比较对象的一种方式)

Java中有两种比较对象方式:

“==”运算符和equals()方法。

“==”运算法比较的是两个对象引用内存的地址是否一样,equals()方法比较的是两个对象的实际内容。

【例】根据身份证号判断是否为同一人

public class People {

int id;

String name;


public People(int id,String name) {

this.id=id;

this.name=name;

}


public boolean equals(Object obj) {

if(this==obj)

return true;

if(this==null)

return false;

if(getClass()!=obj.getClass())

return false;

People other=(People)obj;

if(id!=other.id)

return false;

return true;


}


public String toString() {

return name;

}


public static void main(String[] args) {

People p1=new People(445,"李一");

People p2=new People(445,"李二");

People p3=new People(447,"李三");

Object o=new Object();


System.out.println(p1+"与"+p2+"是否为同一人?");

System.out.println("equals()方法的结果是:"+p1.equals(p2));

System.out.println("==运算符的结果:"+(p1==p2));


System.out.println();

System.out.println(p1+"与"+p3+"是否为同一人?");

System.out.println(p1.equals(p3));

System.out.println(p1+"与"+o+"是否为同一人?");

System.out.println(p1.equals(o));




}


}

结果为:

类和继承_父类


       由上述例子可看出,如果身份证号相同,equals()方法判断出这两个对象实际上是同一个,而“==”运算符无法作出有效判断;如果两个对象的身份证号不同,或者两个对象的类型都不同,equals()方法就会认为两者不是一个人。



标签:String,继承,Object,System,println,public,out
From: https://blog.51cto.com/u_15966010/7614867

相关文章

  • 继承
    继承是一种创建新类的方式,新建的类可以称为子类或者派生类,父类又可以称为基类或者超类 需要注意的是:python支持多继承再python中,新建的类可以继承一个或者多个父类继承格式:classParent1:passclassParent2:passclassSub1(Parent1):单继承passclassSub1(Parent1,Pare......
  • 继承、方法重写
    权限修饰符 方法重写:当子类觉得父类中的某个方法不好用,或者无法满足自己的需求时,子类可以重写一个方法名称、参数列表一样的方法,去覆盖父类的这个方法,这就是方法重写。 子类重写父类方法时,访问权限必须大于或者等于父类该方法的权限(public>protected>缺省)。......
  • 15,面向对象原型继承
    子类对象名.__proto__=父类对象名;varuse={name:'岳不群',age:123,ff:function(){console.log(this.name+'在跑步');}};varniao={fei:function(){console.log(this.name+'在飞');}};varliyu......
  • 封装继承多态和instanceof
    封装一般利用私有private把属性私有,使其无法被调用,想要调用就必须使用get/set快捷键Alt+insert方法来将其使用,它可以增强我们程序的安全性,同时再set的方法中我们可以加入关于变量能否被调用的一些限制get/set输出私有变量方法继承继承是类与类之间的关系,我们可以让子类通过ex......
  • python面向对象的三大特性:封装性、继承性、多态性
    python面向对象的三大特性:封装性、继承性、多态性一、python中的封装在python代码中,封装具有两层含义:①在把现实世界中的实体中的属性和方法写到类的里面的操作即为封装。classPerson(object):#封装属性#封装方法②封装可以为属性和方法添加私有权限(属性和方......
  • 【Java 基础篇】Java继承:打开面向对象编程的大门
    继承是面向对象编程(Object-OrientedProgramming,OOP)中的一个重要概念。在Java中,继承允许一个类(子类)从另一个类(父类)继承属性和方法。这种机制使得代码重用、扩展和维护变得更加容易。本篇博客将深入探讨Java中继承的概念、语法和最佳实践,适用于初学者,让你轻松理解和运用继承的强大功......
  • css继承,position:fixed固定定位
    CSS继承是指元素可以继承其父元素的某些样式属性值。当一个元素应用了某个样式属性值,而其子元素没有显式地指定该属性值时,子元素会从父元素继承该属性值。以下是一些常见的CSS属性可以被继承的例子:1.字体样式属性:font-family、font-size、font-weight、font-style、line-heig......
  • 继承的重写
    1.继承中方法的重写重写(override)概念:在继承关系中,方法的名称一样,参数列表也一样重写(overide):方法的名称一样,参数列表【也一样】。也叫方法的覆盖,覆写。重载(overload):方法的名称一样,参数列表【不一样】方法覆盖重写的特点:创建的是子类对象,则优先用子类方法。2.方法覆盖重写的注意事......
  • 继承
    1.继承解决的问题:共性的抽取 。父类(基类,超类),子类(派生类)1publicclassEmployee{2publicvoidmethod(){3System.out.println("方法执行!");4}5}678publicclassTeacherextendsEmployee{91011}12131415publicclassDem......
  • python入门基础(14)--类的属性、成员方法、静态方法以及继承、重载
    上一篇提到过类的属性,但没有详细介绍,本篇详细介绍一下类的属性一、类的属性方法是用来操作数据的,而属性则是建模必不的内容,而且操作的数据,大多数是属性,比如游戏中的某个boss类,它的生命值就是属性(不同级别的boss,有不同的生命值),被攻击方法(不同的攻击,伤害值不同),当boss被攻击......