继承

1.继承就是代码的高效复用.

2.继承的好处:   代码的复用  易于升级和扩展   为多态做铺垫 

3.继承的功能:  假如B继承了A

         功能:拥有A的所有方法和属性,可以任意调用除私有外的方法,java里只可以单继承(一个类只能继承一个)

 

class A
{ 
       publicvoid method1(){
        System.out.println("hello A!");
       }
       publicstatic void main(String[] args) 
       {
              Bb=new B();
              b.method1();
       }


运行结果:

Hello B!

 


}
class B extends A
{
public void method1(){
        System.out.println("hello B!");
       }
}

4.继承类=子类=派生类

 被继承类=父类=超类

5.使用this实现内部转发,子类继承父类则自动调用无参构造器。

6.super的使用

class 人
{  String name;
   String sex;
   int age;
  public 人(String name,Stringsex,int age){
    this.name=name;
        this.sex=sex;
        this.age=age;
   }
       publicstatic void main(String[] args) 
       {  
               人 r=new 人("李四","女",12);
              
           System.out.println(r.name);
              System.out.println(r.sex);
              System.out.println(r.age);
               男人 n=new 男人("小何",20,"学生");
              System.out.println(n.name);
              System.out.println(n.age);


在构造方法中第一条语句(必须在第一条)使用,以调用父类的构造器;

在构造方法或方法中调用父类属性及方法(父类的private属性和方法无法访问)

也就是说子类有构造方法,那么就要在方法体的第一句加上super()


           

System.out.println(n.type);
               女人 m=new 女人("小花",20);
              System.out.println(m.name);
              System.out.println(m.age);
              m.化妆();.
              }
}
class 男人  extends 人{
  String type="";
  public男人(Stringname,int age,String type){
   super(name,"男",age);
       this.type=type;
  }
}
class 女人 extends 人{
 public void  化妆(){
 System.out.println("漂亮");}
 public 女人(Stringname,int age){
  super(name,"女",age);
  }
}

7.方法的重写(继承环境):方法名和方法参数相同,表示重新在子类声明与父类方法一模一样的方法,但现实不一样。

 当父类的方法过时了,不适用了,才需要重写父类。但不能删除父类中原本的方法。

8.调用方法或属性时,先考虑子类,后考虑父类,即子类有就先调用子类,子类没有再去从父类中找。

9.


程序员



李四


class A{
   String type;
}


name



type



name



type


class B extends A{
String name;
B a1=new B();


对象

 



对象

 



对象

 



对象


a1.name=”李四”;

a1.type=”程序员”;


a1   a2


B a2=new B();
}
10.class A{
  public A(int u){
 System.out.println(“A”+u);
}
}
public class Bextends A{
      public B(){
       super(100000); //声明
}
public B(int i){
super(i);
System.out.println(i);
}
 Public static void main(String[] s){
              Bb=new B(5000);
}

11.class类(属性,方法,静态块,构造器)

   objest对象所有类的祖先---所有类都继承object

12.StringtoString()  将对象形成字符串

13.Objectclong() 

14.booleanequals(object)  比较

15.对象和对象之间比较是比较属性的值

多态

1.       子类可以转换成父类

B b=new B();
A a=new B();

2.面向父类编程思想—>先定规则,后坐实现

                   

   编程的两种写法             软写法:易于改代码,易于升级

                             

                   

                              硬写法