zoukankan      html  css  js  c++  java
  • JAVA学习--面向对象的特征二:继承性

    * 一、面向对象的特征二:继承性
     

    * 1.为什么要设计继承性?
     *
     * 2.通过"class A extends B"类实现类的继承。
     *   子类:A  父类(或基类 SuperClass):B
     *   
     * 3.子类继承父类以后,父类中声明的属性、方法,子类就可以获取到。
     *    明确:当父类中有私有的属性或方法时,子类同样可以获取得到,只是由于封装性的设计,使得子类不可以直接
     *        调用罢了。
     *   子类除了通过继承,获取父类的结构之外,还可以定义自己的特有的成分。
     *   
     *   extends:子类是对父类功能的“扩展”,明确子类不是父类的子集。
     *   
     * 4.java中类的继承性只支持单继承:一个类只能继承一个父类。反之,一个父类可以有多个子类。
     * 5.子父类是相对的概念。
     *
     * 二、方法的重写   ---(方法的重载)     修饰符  返回值类型 方法名 (参数列表){}
     * 1.前提:有子类继承父类
     * 2.子类继承父类以后,若父类的方法对子类不适用,那么子类可以对父类的方法重写(override overwrite)、覆盖、覆写。
     * 3.重写的规则:  1)要求子类方法的“返回值类型 方法名 (参数列表)”与父类的方法一样
     *               2)子类方法的修饰符不能小于父类方法的修饰符
     *               3)*若父类方法抛异常,那么子类方法抛的异常类型不能大于父类的。
     *               4)*子父类的方法必须同为static或同为非static的。
     
     
      1 public class TestExtends {
      2     public static void main(String[] args) {
      3         Student s = new Student();
      4         s.eat();
      5        
      6         Worker w = new Worker();
      7         w.eat();
      8        
      9         Person p = new Person();
     10         p.eat();
     11        
     12         s.setAge(12);
     13         s.setName("麻华龙");
     14         System.out.println(s.getName() + ":" + s.getAge());
     15        
     16         Graduate g = new Graduate();
     17         g.eat();
     18         g.info();
     19         g.show();
     20     }
     21 }
     22 
     23 class Person {
     24     private String name;
     25     private int age;
     26 
     27     public String getName() {
     28         return name;
     29     }
     30 
     31     public void setName(String name) {
     32         this.name = name;
     33     }
     34 
     35     public int getAge() {
     36         return age;
     37     }
     38 
     39     public void setAge(int age) {
     40         this.age = age;
     41     }
     42 
     43     public void eat() {
     44         System.out.println("吃饭");
     45     }
     46 
     47     void walk() {
     48         System.out.println("走路");
     49     }
     50     private void sleep(){
     51        
     52     }
     53 }
     54 
     55 class A{
     56    
     57 }
     58 
     59 class Student extends Person{
     60 // class Student extends Person,A{
     61 //    private String name;
     62 //    private int age;
     63     private String schoolName;
     64    
     65     public Student(){
     66        
     67     }
     68     public Student(String name,int age){
     69 //        this.name = name;
     70 //        this.age = age;
     71         this.setName(name);
     72         this.setAge(age);
     73     }
     74    
     75 //    public String getName() {
     76 //        return name;
     77 //    }
     78 //    public void setName(String name) {
     79 //        this.name = name;
     80 //    }
     81 //    public int getAge() {
     82 //        return age;
     83 //    }
     84 //    public void setAge(int age) {
     85 //        this.age = age;
     86 //    }
     87 //   
     88 //    对父类同名的方法的重写、覆盖
     89     public void eat(){
     90         System.out.println("应该多吃有营养的");
     91     }
     92     public void walk(){
     93         System.out.println("背着书包蹦蹦跳跳的走路");
     94     }
     95     public void info(){
     96         eat();
     97         //System.out.println("name:" + name);
     98         System.out.println("我是一个学生");
     99     }
    100     //不是对父类私有的sleep()方法的重写。
    101     private int sleep(){
    102         return 0;
    103     }
    104    
    105 }
    106 
    107 
    108 
    109 class Worker extends Person{
    110     public void eat(){
    111         System.out.println("工人吃饭");
    112     }
    113      
    114      public void walk(){
    115          
    116      }
    117 }
    118 
    119 class Graduate extends Student{
    120     public void show(){
    121         System.out.println("我是一个研究生");
    122     }
    123 }
  • 相关阅读:
    开发笔记:python与随机数(转)
    如何建立内核级钩子控制操作系统实现程序隐身(转)
    SPOJ 7001. Visible Lattice Points (莫比乌斯反演)
    BZOJ 2301: [HAOI2011]Problem b (莫比乌斯反演)
    HDU 1695 GCD (莫比乌斯反演)
    HDU 4691 Front compression (2013多校9 1006题 后缀数组)
    HDU 4686 Arc of Dream (2013多校9 1001 题,矩阵)
    HDU 1695 GCD (欧拉函数+容斥原理)
    【转】[专题学习][计算几何]
    POJ 1755 Triathlon (半平面交)
  • 原文地址:https://www.cnblogs.com/zhangfan94/p/4263272.html
Copyright © 2011-2022 走看看