标签:
内容包含:
/************************
封装
继承以及使用继承所带来的问题剖析
变量隐藏与方法重写
*************************/
一. 封装
通过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(); } }
执行结果:
狗在说话
标签:
原文地址:http://www.cnblogs.com/hlwyfeng/p/4399094.html