博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
封装、继承、多态
阅读量:5934 次
发布时间:2019-06-19

本文共 2212 字,大约阅读时间需要 7 分钟。

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

封装:隐藏了实现细节,对外提供可以访问的方式。

继承:在现有的基础上创建一个类,让一个类继承另一个类,被继承的类叫父类,继承的类叫子类。

多态:父类引用变量可以指向子类对象,配合继承与方法重写提高了代码的复用性与扩展性。

 

封装用private关键字 set()、 get()对外提供访问。

public class Person {

  //private私有化

  private String name;
  private int age;

  public void sd() {

    //this关键字区分成员变量和局部变量   

    this.name = "光头强";

    this.age = 18;

    System.out.println("name=" + this.name + ",age=" + this.age);

  }

  //setName();getName()对外提供访问

  public void setNamen(String name){
    this.name=name;
  }
  public String getName(){
    return name;
  }
  public void setAge(int age){
    if(age>=0&&age<=130){
      this.age=age;
    }else{
    this.age=0;
    }
  }
  public int getAge(){
    return age;
  }
  public void speak() {
    System.out.println("我叫"+name+",今年"+age+"岁了");
  }

 继承

继承格式:class 子类 extends 父类 {}

//extends关键字来实现继承

 

public class javaEE extends Developer{

  public void print(){
    System.out.println(name+"在写JavaEE代码");
  }

 

在java中只支持单继承,不能多继承。

 

当子父类中出现了同名成员变量时,在子类中若要访问父类中的成员变量,必须使用关键字super来完成。

方法重写

 

//这是父类public class Phone {    public void show(){        System.out.println("显示电话号码");    }    public void sendMssage(){        System.out.println("发短信");    }    public void call(){        System.out.println("打电话");    }}-------------------------------------------------------//子类public class Iphone extends Phone{
//用super调用父类 public void show(){ super.show(); System.out.println("显示来电姓名"); System.out.println("显示头像"); }}

 

 

子类方法覆盖父类方法,必须要保证权限大于等于父类权限。

多态

多态格式:

父类类型  变量名 = new 子类类型();

变量名.方法名();

 

instanceof关键字:判断某个对象是否属于某种数据类型

格式:boolean  b  = 对象  instanceof  数据类型;

 

 

 

public class Demo02 {

  public static void main(String[] args) {

  //多态中调用成员变量的特点
  //运行时走父类成员变量的值
  //编译、运行都看左边
  Fu f=new Zi();
  System.out.println(f.a);
  //多态中调用成员方法的特点
  //编译看左边,运行看右边
  f.show();
  //instanceof :判断对象属于哪种数据类型
  boolean flag=f instanceof Zi;
  System.out.println(flag);
 }

 多态转型:

向上转型:

父类类型  变量名 = new 子类类型();

 向下转型:

子类类型 变量名 = (子类类型) 父类类型的变量;

public static void main(String[] args) {

  //多态:向上转型

  Fu f=new Zi();
  //Zi zi=new Zi();
  if(f instanceof Zi){
  //多态:向下转型
  Zi zi=(Zi)f;
  System.out.println(zi.a);
  zi.show();
  zi.eat();
 }
}

 

转载于:https://www.cnblogs.com/boss-H/p/10898836.html

你可能感兴趣的文章
Java是如何读取和写入浏览器Cookies的
查看>>
篇一、安装配置Android Studio
查看>>
2014年抢票总结
查看>>
zephir开发的扩展“wudimei框架”之模板词法扫描(三)完成代码切分
查看>>
ML 线性回归Linear Regression
查看>>
oracle如何用sql查看触发器?
查看>>
如何对HashMap按键值排序
查看>>
IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm
查看>>
js/jquery/插件表单验证
查看>>
Bandwidth内存带宽測试工具
查看>>
为Node.js编写组件的几种方式
查看>>
(轉貼) Anders Hejlsberg談C#、Java和C++中的泛型 (.NET) (C#)
查看>>
30天敏捷结果(24):恢复你的精力
查看>>
JNI——访问数组
查看>>
C#开发和调用Web Service
查看>>
Android6.0机型上调用系统相机拍照返回的resultCode值始终等于0的问题
查看>>
全面理解Git
查看>>
JS敏感信息泄露:不容忽视的WEB漏洞
查看>>
让我们荡起双桨,Android 小船波浪动画
查看>>
ApacheCN 翻译活动进度公告 2019.2.18
查看>>