面向对象的三大特征:继承、封装、多态


继承的实现

继承让我们更加容易实现类的扩展。子类是父类的扩展

使用extends实现继承

package cn.sxt;public class Test {public static void main(String [] args) {Student s=new Student("止小兮",167,"java");s.rest();s.study();}
}
class Person{String name;int height;public void rest() {System.out.println("休息一会!");}
}
class Student extends Person{String major;  //专业public void study() {System.out.println("在苍小凌那里学习Java");}public Student(String name,int height,String major) {this.name=name;this.height=height;this.major=major;}
}


instanceof 运算符

instanceof是二元运算符,左边是对象,右边是类;当对象是右面类或子类所创建对象时,返回true;否则,返回false

使用instanceof运算符进行类型判断

package cn.sxt;public class Test {public static void main(String [] args) {Student s=new Student("止小兮",167,"java");//s.rest();//s.study();System.out.println(s instanceof Person);System.out.println(s instanceof Student);}
}
class Person{String name;int height;public void rest() {System.out.println("休息一会!");}
}
class Student extends Person{String major;  //专业public void study() {System.out.println("在苍小凌那里学习Java");}public Student(String name,int height,String major) {this.name=name;this.height=height;this.major=major;}
}


继承使用要点

1.父类也称作超类、基类等。

2.Java中只有单继承,没有像C++那样的多继承。多继承会引起混乱,使得继承链过于复杂,系统难于维护。

3.Java中类没有多继承,接口有多继承。

4.子类继承父类,可以得到父类的全部属性和方法 (除了父类的构造方法),但不见得可以直接访问(比如,父类私有的属性和方法)。

5.如果定义一个类时,没有调用extends,则它的父类是:java.lang.Object。


方法的重写override

子类通过重写父类的方法,可以用自身的行为替换父类的行为。方法的重写是实现多态的必要条件。

方法的重写需要符合下面的三个要点:

1. “==”: 方法名、形参列表相同。

2. “≤”:返回值类型和声明异常类型,子类小于等于父类。

3. “≥”: 访问权限,子类大于等于父类

方法重写

package cn.sxt;
class Vehicle{  //交通工具类public void run() {System.out.println("跑.....");}public void stop() {System.out.println("停止不动");}
}
class Horse extends Vehicle{  //马也是交通工具public void run() {  //重写父类方法System.out.println("四蹄翻飞,嘚嘚嘚嘚...");}
}
class Plane extends Vehicle{public void run() {  //重写父类方法System.out.println("天上飞!");}public void stop() {System.out.println("空中不能停,坠毁了!");}
}public class TestOverride {public static void main(String [] args) {Vehicle v1=new Vehicle();Vehicle v2=new Horse();Vehicle v3=new Plane();v1.run();v2.run();v3.run();v2.stop();v3.stop();}
}


Object类基本特性

Object类是所有Java类的根基类,也就意味着所有的Java对象都拥有Object类的属性和方法。如果在类的声明中未使用extends关键字指明其父类,则默认继承Object类


toString方法

Object类中定义有public String toString()方法,其返回值是 String 类型

在打印输出或者用字符串连接对象时,会自动调用该对象的toString()方法。

package cn.sxt;public class TestObject {public static void main(String[] args) {TestObject to=new TestObject();System.out.println(to);System.out.println(to.toString());  //to 与 to.toString() 等同}public String toString() {return "测试Object对象";}
}

package cn.sxt;public class TestObject {public static void main(String[] args) {TestObject to=new TestObject();System.out.println(to);System.out.println(to.toString());  //to 与 to.toString() 等同}/*public String toString() {return "测试Object对象";}*/}

toString()方法测试和重写toString()方法

package cn.dym.cl;class Person{String name;int age;@Overridepublic String toString() {return name+",年龄:"+age;}
}
public class Test {public static void main(String [] args) {Person p=new Person();p.age=21;p.name="止小兮";System.out.println("info:"+p);Test t=new Test();System.out.println(t);}
}

java的知识点11——面向对象的三大特征之一继承、instanceof 运算符、方法的重写override、Object类基本特性、toString方法相关推荐

  1. java五大原则_Java面向对象的三大特征和五大原则

    Java面向对象的三大特征 封装 封装(Encapsulation)是指属性私有化,根据需要提供setter和getter方法来访问属性.即隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问 ...

  2. python多态的三种表现形式_python小结----面向对象的三大特征(封装,继承,多态)

    面向对象的三大特征: 封装,继承,多态 面向对象的编程思想核心:高类聚,低耦合–程序的设计模式范畴 封装 什么是封装: 在面向对象编程的思想中,对代码进行高度封装,封装又叫包装 封装就是指将数据或者函 ...

  3. Java中面向对象的三大特征之一——继承

    继承 1.继承是类和类之间的一种关系java中的类和类之间的关系有很多中,继承只是其中一种,其他的还有依赖.组合.聚合等2.继承关系的俩个类,一个是子类,一个是父类子类也可以称为派生类,父类也可以称为 ...

  4. Python攻城师的成长————面向对象的三大特征(继承、多态)

    学习目标: 了解继承与多态的概念,重点是要学会运用继承去处理问题 学习内容: 继承 在面对对象程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类,而被继 ...

  5. 面向对象编程三大特征之一 继承

    文章目录 继承 概述 语句定义格式 继承的特点 注意事项 继承与成员变量之间的关系 this关键字与super关键字的使用区别 继承与构造方法的关系 继承与成员方法的关系 重写与重载的区别 方法重写的 ...

  6. java object对象的方法_Java常见对象Object类中的个别方法

    Java常见对象Object类 public int hashCode() : 返回该对象的哈希码值. 注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值.你可以理解成 ...

  7. Python学习笔记④——类、面向对象的三大特征 [封装+继承+多态]

    ✅ Blogger Learns Python is for learning the "Deep Learning". 文章目录 一.面向对象编程的简介 二.类与对象 -- 基础 ...

  8. 面向对象的三大特征之一继承

    继承的理解 一 1.继承是单继承,继承一个父类 2.判断子类与父类的关系:is-a(狗是一个宠物) 3.用关键词extends 4子类可以调用父类的方法(注有权限问题) 二 子类访问父类的成员 1访问 ...

  9. OC面向对象的三大特征(封装 继承 多态)习题2 复合

    复合:一个类中有一个成员变量是另外一个类的对象. 比如我现在要制作一台电脑,电脑需要CPU,显示器,鼠标和键盘等.这些东西的研发都是很复杂的过程.如果现在有成型的CPU等组件,就可以直接用这些组件攒一 ...

最新文章

  1. 【hard】146. LRU Cache
  2. 记一次偶遇Adminer
  3. 微课|玩转Python轻松过二级(2.2.4节):位运算符与集合运算符
  4. 招加盟的外卖店,是怎么做到每月10000+单量的?一个餐饮小店,靠外卖年收入过百万是真的吗?
  5. 九宫格 java_java输出九宫格的程序问题
  6. End Game----OO最后一次博客作业
  7. 系统部门岗位关联表_155页,房地产公司最为系统的岗位说明书,敬请收藏
  8. 昨天发现,博客排名进行了两次
  9. xsd文件规则和语法
  10. 利用偏最小二乘法选出最重要的特征波段Matlab
  11. 国足亚洲杯首败的背后:与韩国队只差一个孙兴民?
  12. 设置matlab关联文件,matlab2014b怎样设置文件关联
  13. 最GIS应用案例——告诉你什么是GIS!
  14. 人人5功盖世时候,我在支持国产
  15. python学习 —— post请求方法的应用
  16. linux如何给某个文件加密码,如何通过密码保护Linux上的文件夹或目录?
  17. UsernamePasswordAuthenticationToken
  18. 常见的噪声:高斯、泊松和椒盐噪声
  19. php文件包含读源码,CTF PHP文件包含--session
  20. redis redisson 分布式锁 WRONGTYPE Operation against a key holding the wrong kind of value

热门文章

  1. Python学习-字符编码的理解
  2. Android 最简单的基于FFmpeg的移动端例子:Android HelloWorld
  3. Discovering Urban Functional Zones Using Latent Activity Trajectories TKDE 2015
  4. Matlab使用技巧:Rapid Code Iteration Using Cells in the Editor
  5. [恢]hdu 2521
  6. 控件与布局(WPF)
  7. 没有足够的系统内存来运行此查询。
  8. 基于逆向最大化词表中文分词法zz
  9. 我眼中的Linux设备树(二 节点)
  10. CE6.0 下获得 SD 卡序列号的方法