封装、继承、多态

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

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

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

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

 

封装用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值