zoukankan      html  css  js  c++  java
  • The seventh day

    1.父类也称作超类,基类,派生类
    2.Java中只有单继承,没有像C++那样的多继承,多继承会引起混乱,使得继承链过于复杂,系统难于维护
    3.Java的接口可以多继承;类只能单继承
    4.子类继承父类,可以得到父类的全部属性和方法(除了父类的构造方法),但不见得可以直接访问(比如父类的私有属性和方法)
    5.如果定义一个类,没有调用extends,则它的父类是:java.lang.Object。
    方法的重写override(指的是子类重写父类的方法)
    子类通过重写父类的方法,可以用自身的行为替换父类的行为
    还回值类型声明异常类型,子类小于父类
    Object类是所有Java类的根基类,也就意味着所有的Java对象都拥有Object类的属性和方法
     1 package cn.sxt.oo2;
     2 //object是对象的意思
     3 public class TestObject {     //继承了Object类
     4  public static void main(String[] args) {
     5   //Object obj;
     6   TestObject to = new TestObject();
     7   System.out.println(to.toString());
     8   Perso p2 = new Perso("洗洗",6);
     9  }
    10  public String toString(){
    11   return "测试Object";
    12  }
    13 }
    14 class Perso{
    15  String name;
    16  int age;
    17  
    18  public String toString(){
    19   return name+"年龄:"+age;
    20  }
    21  public Perso(String name,int age){//构造器
    22   
    23  }
    24 }
    继承_equals方法的重写:
     “==”代表比较双方是否相同,如果是基本类型则表示值相等,如果是引用类型则表示地址相等即是同一个对象;
     equals是Object类中定义的方法,public boolean equals(Object obj)方法,提供定义“对象内容相等”的逻辑。
     1 package cn.sxt.oo2;
     2 public class TestEquals {
     3  public static void main(String[] args) {
     4   Object obj;
     5   String str;
     6   User u= new User(111,"邹奇方","35551520");
     7   User u2 = new User (000,"邹奇方","65551520");
     8     System.out.println(u==u2);
     9  }
    10 }
    11 class User{
    12  int id;
    13  String name;
    14  String pwd;
    15  public User(int id, String name, String pwd) {
    16   super();
    17   this.id = id;
    18   this.name = name;
    19   this.pwd = pwd;
    20  }
    21  public boolean equals(Object obj) {
    22         return (this == obj);
    23     }
    24 }
     
    super是直接父类对象的引用。可以通过super来访问父亲中被子类覆盖的方法或属性。
     1 package cn.sxt.oo2;
     2 public class TestSuper {
     3  public static void main(String[] args) {
     4   //new ChildClass().f();    //此行注释无输出结果,此行不注释输出4个结果,故子类也可继承父类的输出
     5   
     6  
     7  }
     8 }
     9 class FatherClass{
    10   int value;
    11   public void f(){
    12    value=100;
    13    System.out.println("FatherClass.value="+value);
    14   }
    15 }
    16 class ChildClass extends FatherClass{
    17  int value;
    18  public void f(){
    19   super.f();         //调用父类对象的普通方法
    20   value = 200;
    21   System.out.println("ChildClass.value="+value);
    22   System.out.println(value);
    23   System.out.println(super.value);    //调用父类对象的成员变量
    24  }
    25 }
     1 package cn.sxt.oo2;
     2 public class TestSuper {
     3  public static void main(String[] args) {
     4   //new ChildClass().f();    //此行注释无输出结果,此行不注释输出4个结果,故子类也可继承父类的输出
     5   
     6  
     7  }
     8 }
     9 class FatherClass{
    10   int value;
    11   public void f(){
    12    value=100;
    13    System.out.println("FatherClass.value="+value);
    14   }
    15 }
    16 class ChildClass extends FatherClass{
    17  int value;
    18  public void f(){
    19   super.f();         //调用父类对象的普通方法
    20   value = 200;
    21   System.out.println("ChildClass.value="+value);
    22   System.out.println(value);
    23   System.out.println(super.value);    //调用父类对象的成员变量
    24  }
    25 }
    面向对象三大特征_封装——访问控制符:
     修饰符        同一个类是否能看见        同一个包中        子类            所有类
     private                 *                                                  
     default                 *                                 *                  
     protected            *                                  *                         *                  
     public                  *                                  *                        *                  *
  • 相关阅读:
    ASP.NET中级学习3
    C#面向对象学习笔记
    Javascript学习笔记
    FormView控件使用
    ASP.NET初级学习
    ListView控件是使用
    Java NIO 学习笔记一
    堆栈和托管堆 c#
    安装php7.2并且整合nginx且分开部署
    Python 安装requests和MySQLdb
  • 原文地址:https://www.cnblogs.com/zqfdgzrc/p/10325309.html
Copyright © 2011-2022 走看看