码迷,mamicode.com
首页 > 编程语言 > 详细

【学习笔记】java面向对象高级编程1

时间:2015-04-07 21:26:42      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

内容包含:

/************************
封装
继承以及使用继承所带来的问题剖析
变量隐藏与方法重写

*************************/

一. 封装

通过get和set进行封装

这里面有个小技巧:通过快捷键 Alt + Shift + 3 进行选择一些快速高效的方法,选择get和set进行快速创建,如下代码:

package com.jfu.one;

public class packAge {
    private int dog;
    private String cat;
    
    
    
    public int getDog() {
        return dog;
    }
    public void setDog(int dog) {
        this.dog = dog;
    }

    public String getCat() {
        return cat;
    }
    public void setCat(String cat) {
        this.cat = cat;
    }

    public static void main(String[] args){
        
    }
}


二. 继承

作用:通过继承可以实现代码的复用。

java不支持多继承.

子类可继承父类的变量和方法, 除了private.

通过在类的声明中加入extends子句来创建一个类的子类:

class SubClass extends SuperClass(){
    }

 

举例如下:


技术分享

Car为父类, SmallCar为子类继承Car, 而BMW继承SmallCar

Car.java

package Carry;

public class Car {
    int price;
    private String color;
    public static void print(){
        System.out.println("父类Car");
    }
}

 

SmallCar.java

package Carry;

public class SmallCar extends Car {
    
    void smallcar(){    
        System.out.println("这个一个小车子类");
    }
    
    public static void main(String[] args){
        SmallCar smallcar = new SmallCar();
        smallcar.print();
    }
}


BMW.java

package Carry;

public class BMW extends SmallCar{
    public static void main(String[] args){
        BMW bmw = new BMW();
        bmw.print();
        bmw.smallcar();
    }
}

 

运行BMW.java, 得出的结果:

父类Car
这个一个小车子类


结果分析:

在BMW.java中, 这个类, 继承了SmallCar类, 而SmallCar类又继承于Car类, 所以BMW类可以使用SmallCar类和Car的属性和方法.

 

三. 继承中的变量隐藏及方法重载原则

变量隐藏原则:

子类中变量名与继承自父类的变量名相同时, 则继承自父类的变量将隐藏.

方法重写原则:

1. 必须要有继承关系

2. 重写后的方法不能比被重写的方法有更严格的访问权限, 可以相同.

3. 改写后的重在方法不可以比重载的方法产生更多的例外(异常).

4. 返回值, 方法名, 方法的参数个数必须与父类一致. (也就是说, 仅仅修改了里面的内容, 其他的不能改变!)

Animal.java

package OverWrite;

public class Animal {
    public void back(){
        System.out.println("动物在说话");
    }
}

 

Dog.java

package OverWrite;

public class Dog extends Animal {
    
    //方法重写
    public void back(){
        System.out.println("狗在说话");
    }
    
    public static void main(String[] args){
        Dog dog = new Dog();
        dog.back();
    }
}

 

执行结果:

狗在说话

 

【学习笔记】java面向对象高级编程1

标签:

原文地址:http://www.cnblogs.com/hlwyfeng/p/4399094.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!